java-应用程序组件上的Dagger 2实例化

java-应用程序组件上的Dagger 2实例化,第1张

概述我对dagger2有疑问,如果我为@Singleton提供了ApplicationComponent,但没有在某些类中使用@Inject实例化该对象.对象在某个类中为@Inject时是否会实例化?例如,在下面的代码中,test是否在main2上实例化?@SingletonpublicclassTest{@InjectpublicTest(){}}

我对dagger2有疑问,

如果我为@Singleton提供了ApplicationComponent,但没有在某些类中使用@Inject实例化该对象.对象在某个类中为@Inject时是否会实例化?
例如,在下面的代码中,test是否在main2上实例化?

@Singletonpublic class Test {    @Inject    public test() {    }}public class main() {    @Inject Test test;    public voID start() {        DaggerComponent.create().inject(this);    }}public class main2() {    public voID start() {        DaggerComponent.create().inject(this);    }}

解决方法:

在某个类中注入它时将被实例化.

您可以通过dagger检查生成的代码,以获取DaggerComponent类的inject(main2)方法,该代码将为空,如下所示:

   @OverrIDe     public voID inject(main2 clazz) {}

而inject(main)方法将调用注入字段(在创建它的实例之后).

总结

以上是内存溢出为你收集整理的java-应用程序组件上的Dagger 2实例化全部内容,希望文章能够帮你解决java-应用程序组件上的Dagger 2实例化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址:https://54852.com/web/1080786.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存