在基类中注入注释 - Dagger仍然想添加注入构造函数

时间:2015-01-03 18:19:30

标签: dependency-injection dagger

我正在使用匕首。 有以下课程:

class A {
 @Inject
 MyClass myClass;
}

class B extends A {
 myClass.do();
}

在尝试编译时我得到了

  

B上没有可注射成员。您想添加注射剂吗?   构造

将myClass移动到B时,所有内容都会编译。知道可能是什么问题吗?

1 个答案:

答案 0 :(得分:3)

Dagger无法了解A的所有子类型,因此它不知道它需要为B等类生成适配器。

添加带有@Inject的无参数构造函数将强制生成可用于在B的实例上执行注入的代码。您还可以在模块的B.class列表中列出injects=以强制生成适配器。