Java 如何将@UiHandler与自定义处理程序一起使用(传递构造函数参数)

Java 如何将@UiHandler与自定义处理程序一起使用(传递构造函数参数),java,gwt,uibinder,Java,Gwt,Uibinder,通常,我们会这样做: @UiHandler("aLink") void onClickALink(ClickEvent e) { // do something } 但是,如果我想使用自己的处理程序实现呢 class MyClickHandler implements ClickHandler { int i; MyClickHandler(int i) { this.i = i; } @Override public voi

通常,我们会这样做:

@UiHandler("aLink")
void onClickALink(ClickEvent e) {
    // do something
}
但是,如果我想使用自己的处理程序实现呢

class MyClickHandler implements ClickHandler {
    int i;

    MyClickHandler(int i) {
        this.i = i;
    }

    @Override
    public void onClick(ClickEvent event) {
        // do something
    }
}

那么,如何将MyClickHandler与@UiHandler一起使用?i、 e.将
i
传递给构造函数?

您还需要创建一个特定的点击事件:

class MyClickHandler implements ClickHandler {
    int i;

    MyClickHandler(int i) {
        this.i = i;
    }

    @Override
    public void onClick(MyClickEvent event) {  // MyClickEvent!
        // do something
    }
}
然后你可以做:

@UiHandler("aLink")
void onClickALink(MyClickEvent e) {
    // do something
}
确保在
MyClickEvent
中实现所有需要的方法,以便GWT能够理解它与
MyClickHandler
关联:请参阅

有关示例,请参见如何在中实现

那么,如何将MyClickHandler与@UiHandler一起使用?i、 e.将i传递给构造器


您不需要。您还需要创建一个特定的单击事件:

class MyClickHandler implements ClickHandler {
    int i;

    MyClickHandler(int i) {
        this.i = i;
    }

    @Override
    public void onClick(MyClickEvent event) {  // MyClickEvent!
        // do something
    }
}
然后你可以做:

@UiHandler("aLink")
void onClickALink(MyClickEvent e) {
    // do something
}
确保在
MyClickEvent
中实现所有需要的方法,以便GWT能够理解它与
MyClickHandler
关联:请参阅

有关示例,请参见如何在中实现

那么,如何将MyClickHandler与@UiHandler一起使用?i、 e.将i传递给构造器


你没有。

很好的例子。我明白你的意思。但是您是否建议我将参数
I
传递给
MyClickEvent
而不是
MyClickHandler
?您必须以不同的方式传递
I
,而不是在处理程序中。您可以将其分配为成员变量,但处理程序不是应该处理变量的人。我同意,处理程序不应该关心
I
伟大的示例。我明白你的意思。但是您是否建议我将参数
I
传递给
MyClickEvent
而不是
MyClickHandler
?您必须以不同的方式传递
I
,而不是在处理程序中。您可以将其分配为成员变量,但处理程序不是应该处理变量的人。我同意,处理程序不应该关心
I