摆脱Dagger 2的警告"生成一个MembersInjector"

时间:2016-04-04 06:58:03

标签: java dagger dagger-2

鉴于以下课程

myArr.forEach(x => [evenArr,oddArr][x%2].push(x));

在Dagger 2中将依赖项注入到一个类中,该类从一个也包含依赖项的抽象基类扩展而来,Dagger在编译期间显示了类abstract class AbstractClass { @Inject SomeDependency someDependency; } class SomeClass extends AbstractClass { @Inject AnotherDependency anotherDepenency; public void onCreate() { component = // Get component instance somehow component.inject(this); } } 的警告。

但是,如果我在Generating a MembersInjector for AbstractClass. Prefer to run the dagger processor over that class instead.中覆盖/实现onCreate()并在那里调用依赖注入,依赖项AbstractClass将被注入两次,这可能会导致意外行为。进入someDependency的{​​{1}}和onCreate()的{​​{1}}。

在防止重复注入依赖项的同时摆脱此警告的最佳解决方案是什么?

2 个答案:

答案 0 :(得分:3)

Dagger 2.9起,这些警告默认关闭。

答案 1 :(得分:1)

解决方案可以是:仅在Abstract类中定义onCreate()