Non-Presenter 上的 GWTP EventBus Class
GWTP EventBus on Non-Presenter Class
在我的 GWTP 应用程序中,我有一个简单的 Java class,它不是 Presenter,它只是一个 class。从这个 class,我需要触发一个将从 Presenter class.
监听的事件
GWTP 在演示者之间共享一个 EventBus。问题是我需要在此 EventBus 中从外部 class 触发事件,以便演示者能够收听它。
我做了研究,到目前为止我还没有遇到与这个外部共享 GWTP 的 EventBus 的方法 class(除了从任何随机演示者内部,这是不正确的)。
正如我在这里看到的,注入的方法不起作用。
有什么想法吗?
如果需要,我会分享一些代码。谢谢!
这是我的 Class:
public class MyClass {
private static MyClass INSTANCE;
public static MyClass singleton() {
if (INSTANCE == null) {
INSTANCE = new MyClass();
}
return INSTANCE;
}
private MyClass() {
}
}
和
@Inject EventBus eventBus
不起作用。当我调用 eventBus.fireEvent() 时,eventBus 是 undefined.
您应该重写 class 并使用 Gin 将 MyClass 绑定为具有 bind(MyClass.class).in(Singleton.class)
的单例,然后在需要的地方注入 MyClass。你的 MyClass class 看起来像这样:
public class MyClass {
@Inject
MyClass(EventBus eventBus) {
this.eventBus = eventBus;
}
}
如果你真的想做你自己的单例,那么你也可以使用 Gin 模块的静态注入:requestStaticInjection(MyClass.class)
.
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() {
}
}
在我的 GWTP 应用程序中,我有一个简单的 Java class,它不是 Presenter,它只是一个 class。从这个 class,我需要触发一个将从 Presenter class.
监听的事件GWTP 在演示者之间共享一个 EventBus。问题是我需要在此 EventBus 中从外部 class 触发事件,以便演示者能够收听它。
我做了研究,到目前为止我还没有遇到与这个外部共享 GWTP 的 EventBus 的方法 class(除了从任何随机演示者内部,这是不正确的)。
正如我在这里看到的,注入的方法不起作用。 有什么想法吗?
如果需要,我会分享一些代码。谢谢!
这是我的 Class:
public class MyClass {
private static MyClass INSTANCE;
public static MyClass singleton() {
if (INSTANCE == null) {
INSTANCE = new MyClass();
}
return INSTANCE;
}
private MyClass() {
}
}
和
@Inject EventBus eventBus
不起作用。当我调用 eventBus.fireEvent() 时,eventBus 是 undefined.
您应该重写 class 并使用 Gin 将 MyClass 绑定为具有 bind(MyClass.class).in(Singleton.class)
的单例,然后在需要的地方注入 MyClass。你的 MyClass class 看起来像这样:
public class MyClass {
@Inject
MyClass(EventBus eventBus) {
this.eventBus = eventBus;
}
}
如果你真的想做你自己的单例,那么你也可以使用 Gin 模块的静态注入:requestStaticInjection(MyClass.class)
.
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() {
}
}