December 3, 2008

public static final

・・・って、うっかりメソッドの宣言部に書いたら普通にコンパイルできました。

オーバーライド禁止を表す"final"を、オーバーライドという概念のないクラスメソッドに付けてもコンパイラに怒られないんですね。

付ける意味も全くないし、動作もまったく変わらないのですが(笑)

Java言語仕様 8.4.3.2 static Methods、8.4.3.3 final Methodsのどちらにも、クラスメソッドにfinalを付けるとどうなる、という規定はありませんね。
http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.3.2

長いことJavaに関わっていますが、今さら気づきました。

0 コメント:

Post a Comment