инициализация статический final-переменной
Всем нам известно, что статическую финальную переменную можно инициализировать в двух местах: сразу же в строке её объявления и в статическом блоке. Но я заметил одну особенность при инициализации переменной в статическом блоке:
class Test{
final static int AGE;
static{
Test.AGE = 20; //ошибка компиляции cannot assign a value to final variable "AGE"
}
}
Т.е. если инициализировать переменную через имя класса (Test) возникает ошибка компиляции. Кто-нибудь знает почему так происходит?
upd: зачем минусовать вопрос и мою карму?) разве ответ на вопрос на поверхности лежит?)