Gwt Gin未找到@Provides方法

Gwt Gin未找到@Provides方法,gwt,dependency-injection,gwt-gin,Gwt,Dependency Injection,Gwt Gin,这是我的Gin模块: public class FooGinModule extends AbstractGinModule { @Override protected void configure() { ... bind(ActivityManager.class).asEagerSingleton(); ... } @Provides @Singleton public ActivityManager getActivityManag

这是我的Gin模块:

public class FooGinModule extends AbstractGinModule {

  @Override
  protected void configure() {
    ...

    bind(ActivityManager.class).asEagerSingleton();

    ...
  }

  @Provides
  @Singleton
  public ActivityManager getActivityManager(EventBus eventBus, SimplePanel display,
      ActivityMapper activityMapper) {
    final ActivityManager activityManager = new ActivityManager(activityMapper, eventBus);
    activityManager.setDisplay(display);
    return activityManager;
  }

}
尝试gwt编译时,出现以下错误:

[错误]未找到类的@Inject或默认构造函数 com.google.gwt.activity.shared.ActivityManager


我指定的
@Provides
方法是否错误?

您不需要显式绑定,事实上我认为它将覆盖
@Provides
方法。我不知道使用<代码> ASEIGER SUNLITON()/<代码> > < <代码> > />代码>方法,而不是考虑<代码>提供程序< /Cult>实现。

bind(ActivityManager.class)
    .toProvider(MyActivityManagerProvider.class)
    .asEagerSingleton();
查看您正在生成/连接的实际内容,我发现将
@ActivityManager
实例实际注入
SimplePanel
的父对象(或您正在用作显示器的任何对象)并在那里调用
setDisplay
非常有用。至少对我来说,这样可以更容易地更换或更改显示器,因为它是代码块的一部分,而不是模块的一部分。它还消除了创建渴望的单例的需要