1
我有很多对象是接口Foo
。所以我有很多Foo
的供应商,没有问题。Dagger2聚集到阵列或集合中的相同基本类型的提供者?
我的问题是我有一个对象需要foo的集合(所有Foo的)。考虑以下几点:
@Module
@AppScope
public class AppModule {
//OTHER PROVIDERS MY FOO'S DEPEND ON OMITTED
@Provides
AaFoo provideAaFoo(){
return new AaFoo();
}
@Provides
BbFoo provideBbFoo(){
return new BbFoo();
}
@Provides
CcFoo providesCcFoo(Something something) {
return new CcFoo(something);
}
//EVEN MORE KINDS OF FOO's...
//Now I need to provide a thing that holds all Foo's
//TODO: This pattern is horribly ugly!
@Provides
FooManager provideFooManager(
AaFoo aa,
BbFoo bb,
CcFoo cc,
...) {//each time I make a foo I have to add; mention it here
FooManager fooService = new FooManager();
fooService.addFoo(aa);
fooService.addFoo(bb);
fooService.addFoo(cc);
fooService.addFoo(dd);
... //and I need to put it here, how nice it would be if this were a collection...
return fooService;
}
}
有没有一种方法我可以问匕首所有Foo的聚合成一个集合,这样我可以只通过该集合到我的provideRouteService
方法?这样,我添加更多foo的一切正常吗?
这将是很好,如果provideFooManager可以使用可变参数和匕首2可以以某种方式与... ... – Quaternion