3.Dagger2创建和区分不同的实例
来源:互联网 发布:淘宝2016春秋连衣裙 编辑:程序博客网 时间:2024/06/11 18:29
在Dagger2中我们通过Moudule中的provide方法(即通过@Provides注解的获取对象实例的方法)获得实例,是根据返回的对象类型进行获取的,有时我们需要获取一个类的多个实例,该如何实现呢?下面开始多个实例的实现。
1.通过@Named(“name”)方式进行区分
@Modulepublic class PModule { private static final String TAG = "PModule"; @Named("li") @Provides public Person provideLi() { Person li = new Person(); Log.e(TAG, "provideLi: "+li); return li; } @Named("wang") @Provides public Person provideWang() { Person wang = new Person(); Log.e(TAG, "provideWang: "+wang); return wang; }}------------------------------------------------------------------- //实例化时 @Named("li") @Inject Person li; @Named("wang") @Inject Person wang;
2.通过自定义注解(Anotation)的方式
@Qualifier:其作用是用来区分不同对象的实例,@Named其实就是@Qualifier的一种实现。
@Qualifier@Documented@Retention(RUNTIME)public @interface Wang {}@Qualifier@Documented@Retention(RUNTIME)public @interface Li {}//然后@Modulepublic class PModule { private static final String TAG = "PModule"; @Li @Provides public Person provideLi() { Person li = new Person(); Log.e(TAG, "provideLi: "+li); return li; } @Wang @Provides public Person provideWang() { Person wang = new Person(); Log.e(TAG, "provideWang: "+wang); return wang; }}------------------------------------------------------------------- //实例化时 @Li @Inject Person li; @Wang @Inject Person wang;
阅读全文
1 0
- 3.Dagger2创建和区分不同的实例
- 区分 #{} 和 ${}的不同应用场景
- 通过acpi_dev_found 区分不同的deviceid,通过dev_of_node和is_acpi_node 区分dt和ACPI
- Python 区分List和一维数组的不同操作
- nginx 区分pc和mobile 到不同的404页面
- 区分不同版本的iPhone
- 区分不同浏览器的方法
- dagger2的集成和使用
- Dagger2和MVP的结合
- iOS 类方法和实例方法的区分和使用
- iOS的构造方法和实例方法的区分
- 区分数据库(database)和实例(instance)的概念
- 类变量和实例变量的简单区分
- URL和URI的详细区分(带实例)
- 关于类方法和实例方法的定义区分
- 区分数据库(database)和实例(instance)的概念
- hibernate区分瞬时实例和分离实例
- Quartz创建多个不同名字的scheduler实例
- 解决gradle升级报错 This version of Android Studio is incompatible with the Gradle Plugin used
- 最后的作业——NP完全问题证明
- Swift_二维码、条形码的生成
- 2017-7-12 文本处理工具
- C++中NULL和nullptr的区别
- 3.Dagger2创建和区分不同的实例
- iOS -- GCD之延迟与定时器
- 安卓中的坐标系
- 【Django】源码分析之session生命周期
- 移动端网页中viewport、retina、高清图、dp单位等详解
- 桥初始化(一)
- CSDN安全设置需改进
- CSS基础知识
- 【问题汇总】python操作hbase脚本