меня есть два похожих окна (View): создания образа диска и редактирования. Окно редактивания — это расширенное окно добавление, поэтому я наследую его от окна добавление.
CreateView имеет поле @Inject CreatePresenter mCreatePresenter.
ChangeView наследуется от СreateView, ChangePresenter от CreatePresenter.
Соответственно, ChangeView имеет у себя поле @Inject CreatePresenter, которое передалось от родительского класса.
По скольку функция create и change имеют разные графы зависимостей (свою интеракторы, презентеры, вью), они имеют и разные компоненты. Для того, чтобы ChangeView не ломалось из-за нехватки CreatePresenter, пришлось ChangeModule унаследовать от CreateModule
Вопрос: можно ли как-то избежать @Inject CreatePresenter в ChangeView или все-таки придется иметь одно поле, которое тянет память?
Проблему решил так: просто сделал одинаковые имена полям для презентеров. Чтобы было понятнее, вот самый наглядный пример: public class Application { public static void main(String[] args) { System.out.println(new B().o); } } class A { String o = "aaa"; } class B extends A { String o = "bbb"; } Вывод: bbb
https://t.me/dagger_2 тебе сюда
Обсуждают сегодня