Java 非演示者类上的GWTP事件总线

Java 非演示者类上的GWTP事件总线,java,events,gwt,gwtp,Java,Events,Gwt,Gwtp,在我的GWTP应用程序中,我有一个简单的Java类,它不是演示者,它只是一个类。在这节课上,我需要触发一个事件,该事件将由一个演讲者课堂收听 GWTP在演示者之间共享一个事件总线。问题是我需要在这个EventBus中从外部类触发事件,以便演示者能够收听它 我做了我的研究,到目前为止,我还没有遇到一种与这个外部类共享GWTP事件总线的方法(除了从任何随机演示者内部,这是不正确的) 正如我在这里看到的,注射的方法不起作用。 有什么想法吗 如果需要,我会分享一些代码。谢谢 这是我的班级: public

在我的GWTP应用程序中,我有一个简单的Java类,它不是演示者,它只是一个类。在这节课上,我需要触发一个事件,该事件将由一个演讲者课堂收听

GWTP在演示者之间共享一个事件总线。问题是我需要在这个EventBus中从外部类触发事件,以便演示者能够收听它

我做了我的研究,到目前为止,我还没有遇到一种与这个外部类共享GWTP事件总线的方法(除了从任何随机演示者内部,这是不正确的)

正如我在这里看到的,注射的方法不起作用。 有什么想法吗

如果需要,我会分享一些代码。谢谢

这是我的班级:

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() {
    }
}