Учитывая следующие классы
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
.
Какое наилучшее решение избавиться от этого предупреждения, предотвращая дублирование инъекций зависимостей?