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?