No se puede hacer referencia a "X" antes de que se haya llamado al supertipo constructor, donde x es una variable final
Considere la siguiente declaración de clase 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;
}
}
El código no se compilará, con el compilador quejándose de la línea que he resaltado anteriormente. ¿Por qué ocurre este error y cuál es la mejor solución?