我有以下提供者:
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
}
提供者的构造函数参数可从其他模块获得(并且注入器是从这个和那个其他模块创建的)。我无法弄清楚如何将该名称提供给提供者。理想的方法是将它也作为构造函数参数,在绑定中设置它的值。知道如何实现这样的目标吗?