如何使用@ImplementedBy注释的接口的Guice获取实例

时间:2012-06-01 14:54:45

标签: java guice

我正在使用一个内部有类

的库
@ImplementedBy(MyClassImpl.class)
public interface MyClassInterface {
....
}

当Guice,如何获取MyClassImpl的实例?

我是否必须创建绑定:

bind(MyClassInterface.class).to(MyClassImpl.class);

为了使用它?

非常感谢

2 个答案:

答案 0 :(得分:2)

不,你不必创建绑定,尽管你可以。如果这样做,将覆盖@ImplementedBy注释。

您可以通过普通注射获得它的实例,例如

@Inject
public Client(MyClassInterface foo) {
  ...
}

或(如果是顶级课程):

injector.getInstance(MyClassInterface.class);

答案 1 :(得分:0)

您要么注入界面:

@Inject
MyClassInterface myClass;

或者您可以使用注射器来获取实例:

MyClassInterface myClass = injector.getInstance(MyClassInterface.class);

两者都将注入MyClassImpl类型。