Невозможно сослаться на «X» до вызова конструктора супертипа, где x - конечная переменная
Рассмотрим следующее объявление класса Java:
public class Test {
private final int defaultValue = 10;
private int var;
public Test() {
this(defaultValue); // <-- Compiler error: cannot reference defaultValue before supertype constructor has been called.
}
public Test(int i) {
var = i;
}
}
Код не будет компилироваться, и компилятор будет жаловаться на строку, которую я выделил выше. Почему происходит эта ошибка и что является лучшим решением?