Java 在Guice多活页夹列表上迭代
嗨,我正试图在模块中构建如下列表,稍后我可以将其注入任何类并在同一模块中使用,如下所示:Java 在Guice多活页夹列表上迭代,java,guice,Java,Guice,嗨,我正试图在模块中构建如下列表,稍后我可以将其注入任何类并在同一模块中使用,如下所示: public class MyConfigModule extends AbstractModule{ @Override protected void configure() { Multibinder<String> myList = Multibinder.newSetBinder(binder(), String.class, Names.named("
public class MyConfigModule extends AbstractModule{
@Override
protected void configure() {
Multibinder<String> myList =
Multibinder.newSetBinder(binder(), String.class, Names.named("MyList"));
myList.addBinding().toInstance("Test1");
MapBinder<String, IManager> myMap = MapBinder
.newMapBinder(binder(), String.class, IManager.class,
Names.named("ManagerMap"));
for(each item in the above myList) <--- cannot figure out how to do this i.e. iterating over a multibinder
myMap
.addBinding(item).to(MyManager.class).asEagerSingleton();
}
}
简短而令人失望的回答是:你不能。如果查看的源代码,您会发现它只是将调用委托给的实例。不幸的是,Multibinder没有公开任何允许您访问RealMultibinder内部数据的方法。即使这样,也不会有帮助,因为RealMultibinder使用的实现来管理绑定。我可以说下去,但我想你明白我的意思 因此,唯一的选择——我真的不建议这样做——是通过所有这些类来反映您自己,直到您进入绑定的数据结构