gpt4 book ai didi

java - 迭代 Guice 多重绑定(bind)器列表

转载 作者:行者123 更新时间:2023-12-02 11:39:12 25 4
gpt4 key购买 nike

您好,我正在尝试在模块中构造如下列表,稍后我可以将其注入(inject)到任何类中并在同一模块中使用,如下所示:

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的源代码,您会看到它只是将调用委托(delegate)给 RealMultibinder 的实例。不幸的是,Multibinder 没有公开任何允许您访问 RealMultibinder 内部数据的方法。即使可以,也无济于事,因为 RealMultibinder 使用 Binder 的实现。管理绑定(bind)。我可以继续说下去,但我想你明白我的意思了;)

因此,唯一的选择(我真的不建议这样做)是通过所有这些类来反射(reflect)您自己,直到您找到绑定(bind)您的数据结构为止。

关于java - 迭代 Guice 多重绑定(bind)器列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48700536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com