参考 Android_Dagger2篇——从小白最易上手的角度 + 最新dagger.android 都是套路——Dagger2没有想象的那么难
(最简单,但是不常用)
@Inject
必须是无参构造方法
@Inject
public Student() {
}
@Component
public interface DaggerComponent {
void inject(MainActivity activity); //要注入的类
}
Make Project (Ctrl+F9)
@Inject Student mStudent;
DaggerStudentComponent.create().inject(this); //该方法执行成功即可以调用对象
@Inject
可以带有参数
@Inject
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Module
@Provides
@Module
public class StudentModule {
@Provides
Student provideStudent() {
return new Student("张三", 18);
}
}
@Component(modules = StudentModule.class) //与上面唯一的区别在此
public interface StudentComponent {
void inject(MainActivity activity);
}
使用builder方式而不是create注入
@Inject Student mStudent;
DaggerStudentComponent.builder().studentModule(new StudentModule()).build().inject(this);
@Inject
只能注解一个构造方法@Module
级别高于@Inject
@Component
可以标注接口
,也可以标注抽象类
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/198872.html原文链接:https://javaforall.cn