java - guide - Deshacerse de la advertencia Daga 2 "Generando un inyector de miembros"
dagger user guide (2)
A partir de la Daga 2.9, estas advertencias están desactivadas por defecto.
Dadas las siguientes clases
abstract class AbstractClass {
@Inject SomeDependency someDependency;
}
class SomeClass extends AbstractClass {
@Inject AnotherDependency anotherDepenency;
public void onCreate() {
component = // Get component instance somehow
component.inject(this);
}
}
en Dagger 2 al inyectar dependencias en una clase que se extiende desde una clase base abstracta que también contiene dependencias, Dagger muestra una advertencia del tipo Generating a MembersInjector for AbstractClass. Prefer to run the dagger processor over that class instead.
Generating a MembersInjector for AbstractClass. Prefer to run the dagger processor over that class instead.
durante la compilación.
Sin embargo, si onCreate()
/ implemento onCreate()
en AbstractClass
y llamo a la inyección de dependencia allí también, la dependencia de someDependency
dependencia se inyectará dos veces, lo que podría conducir a un comportamiento inesperado. Una vez en onCreate()
de AbstractClass
y una vez en onCreate()
de SomeClass
.
¿Cuál es la mejor solución para deshacerse de esta advertencia mientras se evita la inyección duplicada de dependencias?
La solución podría ser: definir onCreate () solo en clase abstracta