对于ui元素,使用@UiHandler的GWTP类型安全

时间:2016-01-26 16:54:38

标签: event-handling gwtp gwt-platform

在GWTP之前,我使用了这样的方法:

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

但gwtp框架让我使用了这个方法:

@UiField 
Button button;

@UiHandler("button")
void onButtonClick(ClickEvent e){
    getUiHandlers().buttonClickAction();
}

我想知道有没有 TYPESAFE 解决方案吗?

如何提供@UiHandler()类型安全值f.e。:

@UiHandler(button);

1 个答案:

答案 0 :(得分:0)

首先,@UiHandler是GWT UiBinder功能。它与GWTP无关。如果您想确保没有人更改xml文件中ui:field的类型,您可以先将其@UiField映射。

@UiField 
Button button;

@UiHandler("button")
void onButtonClick(ClickEvent e){
  getUiHandlers().buttonClickAction();
}

这样,如果有人将ui:field放入ui.xml文件中的按钮 - 它将在编译时失败。希望它有所帮助