Синтаксис, который вы используете, является ярлыком для объявления реализации типа BooleanBinding
. Вы фактически внутри объявления класса.
public void initialize(){
inputsAreFull = new BooleanBinding() {
// This is equivalent to a class level scope for your anonymous class implementation.
{
bind();
}
@Override
protected boolean computeValue() {
return false;
}
};
}
Нельзя случайным образом вызывать методы на уровне класса без блока инициализатора. Вы можете проверить это, написав ...
class MyClass extends BooleanBinding {
bind(); // It's not gonna be very happy with you.
@Override
protected boolean computeValue() {
return false;
}
}
IDEOne с работающим примером: http://ideone.com/EERkXB
См. Также Что такое блок инициализации?