是否有可能在dagger中获取接口/类的实现列表?
我正在寻找像Ninject的Multi-Injection这样的东西.
已经记录在案.
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的google组中提取),使用Provide.Type.SET提供实现
@Provides(type=SET) Foo provideAFoo() { return AFoo(); }
......其他模块或同一模块......
@Provides(type=SET) Foo provideBFoo() { return BFoo(); }
......以及其他地方......
class Bar { @Inject Set<Foo> allMyFoos; }
REF:在dagger的google小组中发帖