我刚开始使用 Guice,所以我的理解可能完全错误。
我有一个接口Foo
和一个实现FooImp
我在我的模块中使用了以下代码来注入它:
bind(Foo.class).annotatedWith("Foo").toInstance(foo); // foo is an instance of FooImp
然后我猜现在在我的代码中Foo
,名称注释为“Foo”的实例将被替换为foo
?
@Named("Foo")
Foo fooInst; // fooInst will be foo at runtime?
如果我是对的,我该如何实现:
public Foo doSomething() { // for some reason there must be no arguments
@Named("Foo")
Foo fooInst; // injecting here seems not allowed...?
fooInst.do();
}