Я хочу иметь возможность создать два экземпляра одного и того же класса и сделать так, чтобы они были внедрены с различными свойствами, а затем эти два объекта были добавлены в два определенных места в моем приложении.
В настоящее время у меня есть методв моем ClientModule ...
@Provides
@Named("bean1")
public MainBean getMainBean() {
MainBean mainBean = new MainBean(new SecondaryBean());
return mainBean;
}
А затем в моих докладчиках и т. д. я делаю следующее:
public MyPresenter(final EventBus eventBus, final MyView view,
@Named("bean1") MainBean bean, TitleSetupData data) {
super(eventBus, view);
this.bean1 = bean1;
}
И это прекрасно работает.Основываясь на соответствующей аннотации @Named, я получаю правильный bean-компонент.
Однако у этого подхода есть недостаток в том, что мне нужно создать и внедрить все зависимости MainBean в методе @Provides.
Таким образом, любые аннотации @Inject в SecondaryBean, например, не учитываются.
Одна вещь, которую я мог бы сделать, - передать в метод getMainBean любые соответствующие зависимости, но мне интересно, может ли быть другое более элегантное или лучшее решение.
У кого-нибудь есть идеи?