У меня есть интерфейс 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?