代码之家  ›  专栏  ›  技术社区  ›  Jacques Giraudel

使用Dagger 2,是否可以从不同的子组件或不同的组件注入相同的类?

  •  2
  • Jacques Giraudel  · 技术社区  · 6 年前

    这似乎是不可能的,但我找不到明确的书面形式。有明确的原因吗?

    谢谢

    2 回复  |  直到 6 年前
        1
  •  3
  •   David Medenjak    6 年前

    这是不可能的。组件可以一次注入所有内容,否则编译将失败 无法提供 错误,列出缺少的内容。

    毕竟,您不能部分调用构造函数(如果使用构造函数注入),也不能部分注入字段,这对于何时、如何或使用哪个作用域注入哪些对象是相当不确定的。如果两个组件都可以提供依赖关系,那么哪个组件应该提供依赖关系?是否创建并注入对象两次?如果另一个对象依赖于另一个组件中的该对象,该怎么办?这将造成比任何好处都多的混乱,并为许多错误和意外行为提供来源。

        2
  •  0
  •   Benjamin Kevin Rameshwaran    6 年前

    只有一个 component 可用于在给定类内注入。你可以有几个 subcomponent 但安装在其上的依赖项。