是否可以在dagger中获取接口/类的实现列表?
我正在寻找像Ninject's Multi-Injection这样的东西。
答案 0 :(得分:5)
已经documented 。
<强> TL; DR 强>:
在您的提供商中
@Provides @IntoSet Foo provideAFoo() { return AFoo(); }
......其他模块或同一模块......
@Provides @IntoSet Foo provideBFoo() { return BFoo(); }
......以及其他地方......
class Bar {
@Inject Set<Foo> allMyFoos;
}
从Dagger2开始,可以映射依赖关系(即java.util.Map
)。
看起来文档不完整,但Dagger已经提供了这个。
例如(从dagger的谷歌小组中提取),使用Provides.Type.SET提供实施
@Provides(type=SET) Foo provideAFoo() { return AFoo(); }
......其他模块或同一模块......
@Provides(type=SET) Foo provideBFoo() { return BFoo(); }
......以及其他地方......
class Bar {
@Inject Set<Foo> allMyFoos;
}
REF:post在匕首的Google群组中