匕首场注射和入口点

时间:2013-05-05 14:31:02

标签: dependency-injection dagger

我在我的一个项目中尝试匕首,我遇到了这种情况: “仅当我将类声明为模块定义中的入口点时,字段注入才有效。”

这是正确的行为吗?

如果未将Messenger.class声明为入口点,则不会向Messenger类注入以下依赖项。构造函数注入器工作正常,但我不想声明多参数构造函数。

public class Messenger implements NetworkInterfaceListener {
  @Inject public NetworkInterface networkInterface;
  @Inject public MessageFactoryInterface messageFactory;
  @Inject public Bus bus;
  @Inject public Logger log;
  ...
  ...
}

1 个答案:

答案 0 :(得分:3)

您只有两种选择:要么注入可注入的所有参数的注入构造函数,要么将类登记到您的dagger模块的entryPoints(现在称为injects)并调用mGraph.inject(this) in默认构造函数(或者甚至需要实际“注入”甚至可能在类外)。