Не может ссылаться на «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;
    }
}

Код не будет компилироваться, а компилятор жалуется на строку, которую я выделил выше. Почему возникает эта ошибка и каков наилучший обходной путь?

69
задан Amr Bekhit 9 June 2012 в 19:05
поделиться