Учитывая следующие классы
abstract class AbstractClass {
@Inject SomeDependency someDependency;
}
class SomeClass extends AbstractClass {
@Inject AnotherDependency anotherDepenency;
public void onCreate() {
component = // Get component instance somehow
component.inject(this);
}
}
в кинжале 2 при введении зависимостей в класс, который простирается от абстрактного базового класса, который также содержит зависимости, Dagger показывает предупреждение о типе Generating a MembersInjector for AbstractClass. Prefer to run the dagger processor over that class instead. во время компиляции.
Однако, если я переопределяю/реализую onCreate() в AbstractClass и вызываю там инъекцию зависимостей, то зависимость someDependency будет вводиться дважды, что может привести к неожиданному поведению. Один раз в onCreate() из AbstractClass и один раз в onCreate() SomeClass.
Какое наилучшее решение избавиться от этого предупреждения, предотвращая дублирование инъекций зависимостей?