为什么这个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.
类名前缀或多或少只是语法......这是编译器或语言规范中的错误?:)