2012-04-13 11 views
0

Guiceに関する質問があります。私はインターフェイスIMyInterfaceを持っている、クラスMyClassはそれを実装しています。Guiceに注入するクラスを動的に決める

public class MyClass { 
    public MyClass(IMyWorker); 
} 

インターフェイスIMyWorkerには、2人の実装者MyWorker1とMyWorker2があります。

私が持っている結合は次のとおりです。

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のコンストラクタにどのWorkerを注入するかを指定するにはどうすればよいですか?

多くのありがとうございます。

答えて

1

MyClassのコンストラクタにアノテーションを追加します。

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

クラスMyWorker1のインスタンスが注入される。この方法。

関連する問題