2012-04-13 110 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

相关问题