Dagger2_daggerlimit

Dagger2_daggerlimit参考Android_Dagger2篇——从小白最易上手的角度+最新dagger.android步骤1.在需要实例化的类中,构造无参构造方法,注解@Inject@InjectpublicStudent(){}构造Component接口,有inject方法@ComponentpublicinterfaceDaggerComponent{voi…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

参考
Android_Dagger2篇——从小白最易上手的角度 + 最新dagger.android
都是套路——Dagger2没有想象的那么难

一、无module方式,无参构造

(最简单,但是不常用)

1. 在需要实例化的类中,构造无参构造方法,注解@Inject

必须是无参构造方法

@Inject
public Student() {
}

Jetbrains全家桶1年46,售后保障稳定

2. 构造Component接口,有inject方法

@Component
public interface DaggerComponent {
    void inject(MainActivity activity);    //要注入的类
}

3. Make Project (Ctrl+F9)

4. 在需要注入的类中调用

@Inject Student mStudent;
DaggerStudentComponent.create().inject(this);   //该方法执行成功即可以调用对象

二、有module方式

1. 在需要实例化的类中,构造方法注解@Inject

可以带有参数

@Inject
public Student(String name, int age) {
    this.name = name;
    this.age = age;
}

2. 构造Module类

  • 注解@Module
  • 构造一个返回类型为需要注入对象的方法,注解@Provides
@Module
public class StudentModule { 
   
    @Provides
    Student provideStudent() {
        return new Student("张三", 18);
    }
}

3. 构造Component接口,有inject方法

@Component(modules = StudentModule.class)   //与上面唯一的区别在此
public interface StudentComponent {
    void inject(MainActivity activity);
}

4. 在需要注入的类中调用

使用builder方式而不是create注入

@Inject Student mStudent;
DaggerStudentComponent.builder().studentModule(new StudentModule()).build().inject(this);

注意

  1. @Inject只能注解一个构造方法
  2. @Module级别高于@Inject
  3. @Component可以标注接口,也可以标注抽象类
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198872.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • phpstorm2021 0.3.12 激活码 blog 3月最新注册码

    phpstorm2021 0.3.12 激活码 blog 3月最新注册码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    44
  • 原生js之字符串截取[通俗易懂]

    原生js之字符串截取[通俗易懂]字符串截取的方法有三种:slice(start,end+1),substring(start,end+1),substr(start,n).slice(start,end+1):两个参数时,参数指截取位置,截取含头不含尾;一个参数时,默认截取到字符串结尾。参数可以为负数,负数就倒着数位置。substring(start,end+1):两个参数时,参数指截取位置,截取含头不含…

    2022年5月24日
    38
  • KNIME数据库扩展指南

    KNIME数据库扩展指南KNIME 数据库扩展指南介绍 KNIME 数据库扩展提供了一组 KNIME 节点 这些节点允许连接到 JDBC 兼容的数据库 这些节点位于 节点存储库 中的 数据库 类别中 您可以在其中找到许多数据库访问 操作和编写节点 数据库节点是每个 KNIMEAnalyti 安装的一部分 不需要安装任何其他的 KNIME 扩展 本指南描述了 KNIME 数据库扩展 并除其他外 展示了如何连接到数据库以及如何在数据库内部执行数据操作 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传

    2025年8月15日
    7
  • android:layout_gravity和android:gravity的区别

    android:layout_gravity和android:gravity的区别1.首先来看看android:layout_gravity和android:gravity的使用区别。android:gravity:这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,android:gravity=”left”和android:text=”提交”,这时Button上的文字“提交”将会位于Button的左

    2022年7月26日
    6
  • ssti模板注入 命令执行_access注入绕过

    ssti模板注入 命令执行_access注入绕过http://xmctf.top:8962/?name={{%22%22[%22\x5f\x5fclass\x5f\x5f%22][“\x5F\x5Fbase\x5F\x5F”][“\x5F\x5Fsubclasses\x5F\x5F”]()[233][“\x5F\x5Finit\x5F\x5F”][“\x5F\x5Fglobals\x5F\x5F”][“\x5F\x5Fbuiltins\x5F\x5F”][‘eval’](“\x5F\x5Fimport\x5F\x5F(‘os’))”)}}

    2022年9月1日
    5
  • wolive在线客服系统_源码屋

    wolive在线客服系统_源码屋wolive是一款为数不多的可自行搭建的php客服系统源码,基于开源高性能workerman框架开发,看了下,功能比较全。想到基于workerman开发,并发性能应该不错。找遍其它客服系统,发现都没有给源码,程序及聊天数据也全部存储在别人服务器上,由于业务涉及到一些账号、订单、买家信息等隐私,担心数据安全问题,所以找到了wolive。由于wolive可以私有化部署,数据库、程序都在自己服务器上,…

    2022年9月21日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号