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