Я не могу понять, почему закрытая переменная имеет значение null, даже если она инициализирована inline. Вот фрагмент моего кода:
public abstract class A {
public A() {
initialize();
}
protected abstract void initializeLayout();
protected void initialize() {
// Do something
initializeLayout();
}
}
public abstract class B extends A {
private final Object myVariable = new Object();
@Override
protected void initializeLayout() {
// Do something with myVariable
}
}
Ну, когда этот код достигнет B.initailizeLayout, myVariable имеет значение NULL. Я думал, что встроенное поле было инициализировано перед всем остальным, даже до конструктора. Я что-то не так справлюсь?