Ошибка компиляции java зависит от того, указано ли имя статической переменной?

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

9
задан Archie 29 July 2012 в 00:53
поделиться