1

我有一个关于 Guice 绑定的问题。

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

我已将绑定配置为:

bind(IMyInterface.class).annotatedWith(Class1.class).to(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);

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

非常感谢

4

1 回答 1

2

我认为你可以这样做:

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

编辑: 似乎有一个类似的问题,这里有类似的答案。

于 2012-04-13T09:51:53.480 回答