0

我正在使用一个内部有一个类的库

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

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

我是否必须创建绑定:

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

为了使用它?

非常感谢

4

2 回答 2

2

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

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

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

或(如果是顶级课程):

injector.getInstance(MyClassInterface.class);
于 2012-06-01T15:00:36.133 回答
0

您要么注入接口:

@Inject
MyClassInterface myClass;

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

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

两者都将被注入 MyClassImpl 类型。

于 2012-06-01T15:01:31.190 回答