2

GWT 2.4.0 で Gin で AssistedInject を使用しようとしています。

  public interface ElevatorButtonFactory {
    ElevatorButton create(int shownFloorNumber, Action<Integer> onClick);
  }

  @Inject
  ElevatorButton(GameHost gameHost, @Assisted int shownFloorNumber,
      @Assisted Action<Integer> onClick) {
    // ...
  }

私のジンモジュールでは:

install(new GinFactoryModuleBuilder().implement(ElevatorButton.class, ElevatorButton.class)
        .build(ElevatorButtonFactory.class));

それで十分だと思われますよね?ElevatorButtonFactoryしかし、注入されたパラメーターとして取得しようとすると、次のエラーが発生します。

[エラー] [foo] - 据え置きバインディングの結果タイプ 'com.foo.html.client.components.floorpicker.ElevatorButton.ElevatorButtonFactory' は抽象であってはなりません

私は何を間違っていますか?

4

1 に答える 1

1

その問題はGINに関するものではないようです。ElevatorButtonFactoryそれは、クラスをどのように使用するかについてです。インジェクター インターフェイスは次のようになります。

@GinModules(YourGinModule.class)
public interface InjectorService extends Ginjector {

    ElevatorButtonFactory getElevatorButtonFactory();

}

ElevatorButtonインスタンスを作成:

GWT.create(InjectorService.class).getElevatorButtonFactory().create(...)

GWT.create() などを介してファクトリをインスタンス化しようとしている可能性がありますか? 問題が解決しない場合は、完全なスタック トレースを見てみましょう。

于 2012-05-28T05:54:57.163 に答える