Nie można odwołać się do „X” przed wywołaniem konstruktora supertype, gdzie x jest zmienną końcową

Rozważ następującą deklarację klasy 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;
    }
}

Kod nie zostanie skompilowany, ponieważ kompilator skarży się na linię, którą zaznaczyłem powyżej. Dlaczego ten błąd występuje i jakie jest najlepsze obejście?

questionAnswers(7)

yourAnswerToTheQuestion