class A {
@Inject
MyClass myClass;
}
class B extends A {
myClass.do();
}
在尝试编译时我得到了
B上没有可注射成员。您想添加注射剂吗? 构造
将myClass移动到B时,所有内容都会编译。知道可能是什么问题吗?
答案 0 :(得分:3)
Dagger无法了解A
的所有子类型,因此它不知道它需要为B
等类生成适配器。
添加带有@Inject
的无参数构造函数将强制生成可用于在B
的实例上执行注入的代码。您还可以在模块的B.class
列表中列出injects=
以强制生成适配器。