提供一个值来提供,我有以下提供:在吉斯
class MyProvider implements Provider<T> {
private final ClassX objectX;
private String name;
@Inject
public MyProvider(ClassX objectX) {
this.objectX = objectX
}
T get() {
// uses name and objectX to provide an object of T
}
}
我的绑定是这样的:
List<String> names;
for (String name : names) {
bind(T.class).annotatedWith(Names.named(name))
.toProvider(MyProvider.class) // somehow set name in Provider
}
构造函数参数提供商可从其他模块(和喷油器是从这个和其他模块创建的)。我无法弄清楚如何将该名称提供给提供者。理想的方法是将其作为构造函数参数,并在绑定中设置其值。任何想法如何能够实现这样的事情?
如果托管依赖项由字段或方法提供,那么当您执行新的SmthProvider(“whatever”)时,将不会注入这些对象; – Aman
嗯,我认为它会工作。那么,这是不可能知道的一切:) –
@Aman实际上,'toProvider()'自动执行成员(场和setter)注入其参数。 –