инициализация статический final-переменной

Всем нам известно, что статическую финальную переменную можно инициализировать в двух местах: сразу же в строке её объявления и в статическом блоке. Но я заметил одну особенность при инициализации переменной в статическом блоке:

class Test{

     final static int AGE;

     static{

          Test.AGE = 20; //ошибка компиляции cannot assign a value to final variable "AGE"

     }

}

Т.е. если инициализировать переменную через имя класса (Test) возникает ошибка компиляции. Кто-нибудь знает почему так происходит?

upd: зачем минусовать вопрос и мою карму?) разве ответ на вопрос на поверхности лежит?)


Ответы (0 шт):