我可以在Dagger中使用某种辅助注射吗?

我可以在Dagger中使用某种辅助注射吗?,第1张

我可以在Dagger中使用某种辅助注射吗?

因为工厂是一种单独的样板,可以进行优化(请参阅此处的邮件列表讨论),所以Dagger将其留给了姊妹项目AutoFactory。这提供了Guice通过FactoryModuleBuilder提供的“
辅助注入
”功能,但具有一些额外的好处:

  • 您可以继续将AutoFactory与Guice或Dagger或任何其他JSR-330依赖项注入框架一起使用,因此即使在它们之间进行切换,也可以继续使用AutoFactory。
  • 因为AutoFactory会生成代码,所以您无需编写表示该构造函数的接口:AutoFactory将编写一个全新的类型供您进行编译。(如果愿意,或者从Guice迁移,也可以指定要实现的接口。)
  • 因为所有类型检查都是在编译时进行的,所以它会生成普通的旧Java,它不会因反射而变慢,并且可以与调试器和优化器一起很好地工作。这使得Auto库对于Android开发特别有用。

例如,来自AutoFactory自述,这将产生一拉

SomeClassFactory
providedDepA
@Inject
-annotated构造函数和
depB
在一个
create
方法:

@AutoFactoryfinal class SomeClass {  private final String providedDepA;  private final String depB;  SomeClass(@Provided @AQualifier String providedDepA, String depB) {    this.providedDepA = providedDepA;    this.depB = depB;  }  // …}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5020745.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存