gpt4 book ai didi

java - GWT removeHandler 在第一个事件通知

转载 作者:搜寻专家 更新时间:2023-10-30 21:08:31 24 4
gpt4 key购买 nike

我想在第一次收到事件时删除 GWT 事件处理程序。我还想避免因跟踪并非真正必要的注册对象而污染我的类(class)。我目前将其编码为:

final HandlerRegistration[] registrationRef = new HandlerRegistration[1];registrationRef[0] = dialog.addFooHandler(new FooHandler(){    public void onFoo(FooEvent event)    {        HandlerRegistration removeMe = registrationRef[0];        if(removeMe != null)        {            removeMe.removeHandler();        }        // do stuff here    }});

但是使用 registrationRef 会降低代码的可读性。有没有更好的方法在不向我的类中添加变量的情况下执行此操作?

最佳答案

我只是让 HandlerRegistration 对象成为封闭类的一个字段,这样你就不会被编译器打扰,而且它比改组数组和其他东西更“优雅”:

public class TestWidget extends Composite {
//...

HandlerRegistration handler;

public TestWidget() {
// ...

handler = button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// ...
handler.removeHandler();
}
});
}

}

关于java - GWT removeHandler 在第一个事件通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2614355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com