2012-04-13 106 views
1

我有一個關於在Guice中綁定的問題。Guice將兩個不同的類綁定到具有註釋的相同接口

我有兩個類(MyClass1和MyClass2)都實現相同的接口,說:IMyInteface。

我已經得到了綁定配置爲:

綁定(IMyInterface.class).annotatedWith(Class1.class)。爲了(MyClass1.class); bind(IMyInterface.class).annotatedWith(Class2.class).to(MyClass2.class);

Class1和Class2是定義的註釋。現在

,如果我用這個代碼在客戶端:

Injector injector = Guice.createInjector(new MyModule()); 
    IMyInterface c = injector..getInstance(IMyInterface.class); 

的吉斯不會知道,我希望有IMyInterface的哪一個實現。無論如何,我可以在這個階段指定註釋來選擇性地說:我想實現MyClass2?

非常感謝

回答

2

我認爲你可以這樣做:

injector.getInstance(Key.get(IMyInterface.class, Class2.class)); 

編輯: 似乎有一個類似的答案here類似的問題。

+0

非常感謝。有用 :) – Kevin 2012-04-13 09:54:34

相關問題