Não é possível fazer referência a "X" antes de o construtor de supertipos ser chamado, em que x é uma variável final
Considere a seguinte declaração de classe 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;
}
}
O código não irá compilar, com o compilador reclamando sobre a linha que eu destaquei acima. Por que esse erro está acontecendo e qual é a melhor solução alternativa?