クラスで定義されたクリック ハンドラー メソッドがあります。画面上のキャンセル ボタンがクリックされた場合に、特定のメソッドを呼び出そうとしています。ここにコードスニペットがあります -
boolean tempCheck;
@Override
protected void onBind() {
super.onBind();
...
...
getViewName().getVar().addClickHandler(new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
//Doing some operation and making tempCheck true
tempCheck = true;
}
});
If(tempCheck){
this.box.getButtonName().addClickHandler(new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
this.box.hide();
this.getViewName().hide();
}
});
} else {
this.callToMethodA();
}
}
ボタンがクリックされると、tempCheck ブール変数が true になります。
tempCheck = true;
ただし、条件が失敗した場合は、常に else 部分に入ります。
If(温度チェック)
なぜこれが起こっているのですか?これは、Java がクロージャーを管理する方法によるものですか? 注 : this.callToMethodA() は他のクリック ハンドラでも使用されるため、条件がブロックの外にある必要がある場合。