Почему эта 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.
был скорее -или -, чем просто синтаксисом... это ошибка в компиляторе или спецификации языка?:)