0

Guiceについて質問です。インターフェイス IMyInterface を取得しました。クラス MyClass がそれを実装しています。

public class MyClass {
   public MyClass(IMyWorker);
}

インターフェイス IMyWorker には、MyWorker1 と MyWorker2 の 2 つのインプリメンタがあります。

私が持っているバインディングは次のとおりです。

    bind(IMyInterface.class).to(MyClass.class);
    bind(IMyWorker.class).annotatedWith(W1.class).to(MyWorker1.class);
    bind(IMyWorker.class).annotatedWith(W2.class).to(MyWorker2.class);

W1 と W2 は定義済みの注釈です。

私の質問は次のとおりです。MyClass のインスタンスを作成するときに、MyClass のコンストラクターに注入するワーカーを指定するにはどうすればよいですか?

どうもありがとう。

4

1 に答える 1

1

のコンストラクターに注釈を追加しMyClassます。

@Inject
public MyClass(@W1 IMyWorker worker) 
{
    ....
}

このようにして、クラスのインスタンスMyWorker1が注入されます。

于 2012-04-13T11:00:37.683 に答える