我们说我们有以下代码:
@Inject
private Collection<SomeKind> myCollection;
我想要的是它们被解决后的依赖关系(我的意思是,SomeKind类型的所有类)也可以添加到集合中。我知道我可以注入ServiceLocator,并以编程方式在注册表中搜索实例,然后自己将它们添加到集合中,我只是想知道这种情况是否有一个共同的机制。
答案 0 :(得分:1)
我认为你想要的是IterableProvider<SomeKind>
。请参阅Documentation。
它是Iterable,因此您可以在每个循环中使用它
for (SomeKind someKind: someKinds) {
...
}
您可以按名称查找它们
@Inject
IterableProvider<SomeKind> someKinds;
...
SomeKind someKind = someKinds.named("someName").get();