【发布时间】:2020-05-26 14:37:33
【问题描述】:
我有一个接口 BaseProcessor 和它的几个实现。
现在,在一个类 (ValidationComponent) 中,我想要一个我所有 BaseProcessor 实现的列表,如下所示:List<BaseProcessor> processors;
所有实现都有一个@Inject 构造函数。
现在,我正在这样做:
在ValidationComponent类中,
private List<BaseProcessor> processors;
@Inject
public ValidationComponent(@NonNull final ProcessorImpl1 processor1,
@NonNull final ProcessorImpl2 processor2,
@NonNull final ProcessorImpl3 processor3) {
this.processors = new ArrayList<>();
this.processors.add(processor1);
this.processors.add(processor2);
this.processors.add(processor3);
}
为了将实现传递给构造函数,dagger 正在创建这些实现的实例,因为如前所述,它们都有 @Inject 构造函数。
现在,我可以使用 Dagger 为我创建所有这些实现实例,而不是在构造函数中传递每个具体实现吗?
我知道在 Spring 框架中可以通过使用 @Component spring 注释来注释实现。 Dagger有办法吗?
【问题讨论】:
标签: java dependency-injection dagger-2 dagger