我有一个关于 Guice 的问题。我有一个接口(interface) IMyInterface,类 MyClass 实现了它。
public class MyClass {
public MyClass(IMyWorker);
}
接口(interface) IMyWorker 有两个实现者 MyWorker1 和 MyWorker2。
我得到的绑定(bind)是:
bind(IMyInterface.class).to(MyClass.class);
bind(IMyWorker.class).annotatedWith(W1.class).to(MyWorker1.class);
bind(IMyWorker.class).annotatedWith(W2.class).to(MyWorker2.class);
W1和W2是定义的注释。
我的问题是:当我创建MyClass的实例时,如何指定要注入(inject)到MyClass的构造函数中的Worker?
非常感谢。
最佳答案
将注释添加到MyClass
的构造函数中。
@Inject
public MyClass(@W1 IMyWorker worker)
{
....
}
这样,MyWorker1
类的实例将被注入(inject)。
关于java - 动态决定在 Guice 中注入(inject)哪个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10139337/