我正在尝试从第三方软件包中绑定类C。 它通过构造函数注入一个Foo类实例。
class C {
public C(@Inject Foo foo) {
...
}
...
}
在我的应用程序中,我绑定了两个Foo实例-
bind(Foo.class)
.to(FooImpl1.class);
bind(Foo.class)
.annotatedWith(Names.named("SpecialFoo"))
.to(FooImpl2.class);
当绑定C时,我希望使用Named Foo实例。但是,我无法访问定义C的代码,因此无法添加任何注释。
除了编写自己的C语言提供程序方法以外,是否有建议的方法?
答案 0 :(得分:0)
您可以考虑使用PrivateModule。在您的示例中,它将类似于:
public class CModule extends PrivateModule {
protected void configure() {
bind(Foo.class).to(FooImpl2.class);
bind(C.class);
expose(C.class);
}
}