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可以标注接口,也可以标注抽象类
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • DHCP Option 60 的理解

    DHCP Option 60 的理解

    2021年11月28日
  • 疫情数据可视化_全国疫情数据可视化项目

    疫情数据可视化_全国疫情数据可视化项目###1.作业描述这个作业属于哪个课程课程结对学号221701225,221701208这个作业要求在哪里作业要求这个作业的目标完成需求分析,原型设计等开发前期任务作业正文本文其他参考文献echarts官方文档、Axure中使用echarts图表、Axure使用教程2.客户需求用户需求在主界面—全国地图中在全国地图上使用不同的…

  • 虚拟 显示器_win7检测不到第二个显示器

    虚拟 显示器_win7检测不到第二个显示器这里写自定义目录标题虚拟显示器概述虚拟显示器原理方案虚拟显示器概述最近因工作需要,需要在物理显卡上虚拟出一个显示器,我是用的操作系统是win7,查询了下官方文档和网络资源,没有现成的框架,所以需要自己研究如何一步步实现。虚拟显示器用途挺多的,我们其实在一些场景中有用到过,比如displaylink,我们网上买的一些USB转HDMI的连接线,在使用过程中我们需要安装displaylink的驱…

  • 网络编程:socket 编程

    网络编程:socket 编程socket编程-客户端/服务器架构:即C/S架构1,硬件C/S架构(打印机)2,软件C/S架构(web服务)C/S架构与socket的关系:socket就是为了完成C/S架构的开

  • 约瑟夫环问题递归解法的一点理解

    约瑟夫环问题递归解法的一点理解约瑟夫环递归解法代码的一点理解。约瑟夫生者死者游戏约瑟夫游戏的大意:30个游客同乘一条船,因为严重超载,加上风浪大作,危险万分。因此船长告诉乘客,只有将全船一半的旅客投入海中,其余人才能幸免于难。无奈,大家只得同意这种办法,并议定30个人围成一圈,由第一个人数起,依次报数,数到第9人,便把他投入

  • ExecuteNonQuery()返回值

    ExecuteNonQuery()返回值

发表回复

您的电子邮箱地址不会被公开。

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