您可以創建自己的EventHandler
接口,用於處理多個事件
public interface MultipleEventsHandler extends EventHandler {
void onMyEvent(MyEvent event);
void onMyOtherEvent(MyOtherEvent event);
}
然後在你的事件類,您可以定義的方法應該叫
public class MyEvent extends GwtEvent<MultipleEventsHandler> {
public static final Type<MultipleEventsHandler> TYPE = new Type<MultipleEventsHandler>();
@Override
public Type<MultipleEventsHandler> getAssociatedType() {
return TYPE;
}
@Override
protected void dispatch(MultipleEventsHandler handler) {
handler.onMyEvent(this);
}
}
public class MyOtherEvent extends GwtEvent<MultipleEventsHandler> {
public static final Type<MultipleEventsHandler> TYPE = new Type<MultipleEventsHandler>();
@Override
public Type<MultipleEventsHandler> getAssociatedType() {
return TYPE;
}
@Override
protected void dispatch(MultipleEventsHandler handler) {
handler.onMyOtherEvent(this);
}
}
如果你只是想減少類/接口的數量,那麼你可以把EventHandler
放在你的事件類中,例如
public class MyEvent extends GwtEvent<MyEvent.Handler> {
public interface Handler extends EventHandler {
void onMyEvent(SomeEvent event);
}
public static final Type<MyEvent.Handler> TYPE = new Type<MyEvent.Handler>();
@Override
public Type<MyEvent.Handler> getAssociatedType() {
return TYPE;
}
@Override
protected void dispatch(MyEvent.Handler handler) {
handler.onMyOtherEvent(this);
}
}
謝謝你的好例子:) –