このJavaプログラムがコンパイルされないのはなぜですか。
public class xx {
public static final Object obj;
static {
// obj = null; // this compiles
xx.obj = null; // this doesn't
}
}
このエラーで:
$ javac xx.java
xx.java:5: cannot assign a value to final variable obj
xx.obj = null; // this doesn't
^
1 error
$ javac -version
javac 1.6.0_33
(コメントでほのめかされているように)と置き換えるxx.obj = null
と、コンパイルされます。obj = null
xx.
クラス名のプレフィックスは多かれ少なかれ構文だけだと思いました...これはコンパイラまたは言語仕様のバグですか?:)