我正在使用一个内部有一个类的库
@ImplementedBy(MyClassImpl.class)
public interface MyClassInterface {
....
}
Guice 时,如何获取 MyClassImpl 的实例?
我是否必须创建绑定:
bind(MyClassInterface.class).to(MyClassImpl.class);
为了使用它?
非常感谢
不,您不必创建绑定,尽管您可以。如果你这样做,它将覆盖@ImplementedBy
注释。
您可以通过普通注入获得它的实例,例如
@Inject
public Client(MyClassInterface foo) {
...
}
或(如果是顶级课程):
injector.getInstance(MyClassInterface.class);
您要么注入接口:
@Inject
MyClassInterface myClass;
或者您可以使用注入器来获取实例:
MyClassInterface myClass = injector.getInstance(MyClassInterface.class);
两者都将被注入 MyClassImpl 类型。