多次注射匕首

时间:2014-06-03 14:36:23

标签: android dependency-injection dagger

是否可以在dagger中获取接口/类的实现列表?

我正在寻找像Ninject's Multi-Injection这样的东西。

1 个答案:

答案 0 :(得分:5)

Dagger2更新

已经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)。

原始答案(适用于Dagger1)

看起来文档不完整,但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群组中

相关问题