我在我的一个项目中尝试匕首,我遇到了这种情况: “仅当我将类声明为模块定义中的入口点时,字段注入才有效。”
这是正确的行为吗?
如果未将Messenger.class声明为入口点,则不会向Messenger类注入以下依赖项。构造函数注入器工作正常,但我不想声明多参数构造函数。
public class Messenger implements NetworkInterfaceListener {
@Inject public NetworkInterface networkInterface;
@Inject public MessageFactoryInterface messageFactory;
@Inject public Bus bus;
@Inject public Logger log;
...
...
}
答案 0 :(得分:3)
您只有两种选择:要么注入可注入的所有参数的注入构造函数,要么将类登记到您的dagger模块的entryPoints
(现在称为injects
)并调用mGraph.inject(this)
in默认构造函数(或者甚至需要实际“注入”甚至可能在类外)。