Java 非演示者类上的GWTP事件总线
在我的GWTP应用程序中,我有一个简单的Java类,它不是演示者,它只是一个类。在这节课上,我需要触发一个事件,该事件将由一个演讲者课堂收听 GWTP在演示者之间共享一个事件总线。问题是我需要在这个EventBus中从外部类触发事件,以便演示者能够收听它 我做了我的研究,到目前为止,我还没有遇到一种与这个外部类共享GWTP事件总线的方法(除了从任何随机演示者内部,这是不正确的) 正如我在这里看到的,注射的方法不起作用。 有什么想法吗 如果需要,我会分享一些代码。谢谢 这是我的班级:Java 非演示者类上的GWTP事件总线,java,events,gwt,gwtp,Java,Events,Gwt,Gwtp,在我的GWTP应用程序中,我有一个简单的Java类,它不是演示者,它只是一个类。在这节课上,我需要触发一个事件,该事件将由一个演讲者课堂收听 GWTP在演示者之间共享一个事件总线。问题是我需要在这个EventBus中从外部类触发事件,以便演示者能够收听它 我做了我的研究,到目前为止,我还没有遇到一种与这个外部类共享GWTP事件总线的方法(除了从任何随机演示者内部,这是不正确的) 正如我在这里看到的,注射的方法不起作用。 有什么想法吗 如果需要,我会分享一些代码。谢谢 这是我的班级: public
public class MyClass {
private static MyClass INSTANCE;
public static MyClass singleton() {
if (INSTANCE == null) {
INSTANCE = new MyClass();
}
return INSTANCE;
}
private MyClass() {
}
}
及
不起作用。当我调用eventBus.fireEvent()时,eventBus是未定义的您应该重写您的类,并使用Gin将MyClass作为一个带有
bind(MyClass.class)的单例绑定到(Singleton.class)
中,然后在需要的地方插入MyClass。然后,您的MyClass类可以如下所示:
public class MyClass {
@Inject
MyClass(EventBus eventBus) {
this.eventBus = eventBus;
}
}
如果你真的想做你自己的单例,那么你也可以使用来自Gin模块的静态注入:requestStaticInjection(MyClass.class)
你们班看起来怎么样?您可以在自定义类中插入
EventBus
。@我将编辑问题并发布一些代码。谢谢您的建议。我会尽快尝试,之后我会发布结果。非常感谢。它很好地解决了我的问题。当我将GWTP与GWT plugin 2.7.0结合使用时,它没有附带Ginject类,但是有一个通用的presenter首先加载,所以我将它放在那里。
public class MyClass {
@Inject
MyClass(EventBus eventBus) {
this.eventBus = eventBus;
}
}
public class MyClass {
@Inject
private static EventBus eventBus;
private static MyClass INSTANCE;
public static MyClass singleton() {
if (INSTANCE == null) {
INSTANCE = new MyClass();
}
return INSTANCE;
}
private MyClass() {
}
}