GWTP typesafe with @UiHandler for ui elements

GWTP typesafe with @UiHandler for ui elements

在 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);

?

首先@UiHandler是GWT UiBinder的一个特性。它与 GWTP 无关。如果要保证xml文件中ui:field的类型没有人改,可以先用@UiField映射

@UiField 
Button button;

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

这样,万一有人把 ui:field 不放在 ui.xml 文件中的按钮上 - 它会在编译时失败。希望对您有所帮助