以下のクラスを想定
abstract class AbstractClass {
@Inject SomeDependency someDependency;
}
class SomeClass extends AbstractClass {
@Inject AnotherDependency anotherDepenency;
public void onCreate() {
component = // Get component instance somehow
component.inject(this);
}
}
Dagger 2 では、依存関係を含む抽象基本クラスから拡張されたクラスに依存関係を注入すると、Generating a MembersInjector for AbstractClass. Prefer to run the dagger processor over that class instead.
コンパイル中に Dagger によってこの種の警告が表示されます。
onCreate()
ただし、をオーバーライド/実装してAbstractClass
、そこでも依存性注入を呼び出すと、依存性someDependency
が 2 回注入され、予期しない動作が発生する可能性があります。 で 1 回onCreate()
、AbstractClass
で 1 回onCreate()
ですSomeClass
。
依存関係の重複注入を防ぎながらこの警告を取り除くための最善の解決策は何ですか?
ベストアンサー1
現在ダガー 2.9これらの警告はデフォルトではオフになっています。