Guice将两个不同的类绑定到带有注释的相同接口

时间:2012-04-13 09:47:11

标签: java guice

我对Guice的绑定有疑问。

我有两个类(MyClass1和MyClass2)都实现了相同的接口,比如:IMyInteface。

我已将绑定配置为:

绑定(IMyInterface.class).annotatedWith(Class1.class)。为了(MyClass1.class); 绑定(IMyInterface.class).annotatedWith(Class2.class)。为了(MyClass2.class);

Class1和Class2是定义的注释。

现在,如果我在客户端中使用此代码:

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

Guice不会知道我想为IMyInterface提供哪种实现。无论如何我可以在这个阶段指定注释来有选择地说:我想要实现MyClass2吗?

非常感谢

1 个答案:

答案 0 :(得分:2)

我认为你可以做到:

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

修改 类似的答案似乎也有类似的问题here