如下示例代码,在Module中同时提供了两个Person的实例,如果不加以区分,就会报如下错误 这时候我们可以在用@Name来加以区分 error: [Dagger/DuplicateBindings] com.him.hisapp.Person is bound multiple times:@ ...
Android Dagger2 @Module includes属性用法
@Modulepublic class TeacherModule { @Provides public Teacher provideTeacher() { return new Teacher(); }} MainMod ...
Android Dagger2 @Component依赖多个Module
Dagger2中Component可以依赖单个Module,写法如下 @Component(modules = MainModule.class)public interface MainActivityComponent { void inject(MainActivity act ...
android Dagger2 @Module和@Provides 依赖注入
通过@Inject提供对象来依赖注入有以下两个缺点 如果要注入的对象属于某个第三方库中的类,那么我们是无法在在这个类的构造方法上添加@Inject注解的 如果要注入的对象是个abstract抽象类或者Interface接口,那么这个类似没有构造方法的,也无法添加@Inject注解 要解决以上问题 ...
Android Dagger2 @Inject必须具体到某个类,不支持注入子类赋值给父类
我们知道java的多态支持声明一个父类对象,然后实例化一个子类对象赋值给它 但是Dagger并不支持这种多态,我们可以写个例子验证下,直接上代码 public interface Person { String saySomething();} public class ...
Android Dagger2 @Inject标识在方法上注入
Dagger除了可以在属性上表示@Inject注入对象外,还可以在方法上标识,如下所示 然后调用DaggerMainActivityComponent.create().inject(this)就可以注入对象了 public class MainActivity extends AppCompatA ...
Android Dagger2 Component获取某一对象实例
Component常见的方法定义如下所示 @Componentpublic interface MainActivityComponent { public Student getStudent();} 然后通过DaggerMainActivityComponent.c ...
android Dagger2 多层注入
简单来说我们要实现的就是在MainActivity中注入一个Student对象,在Student对象中又注入一个Teacher对象 实现代码二话不说,直接上代码 Student public class Student { public String name; @Inject ...
Android Dagger2 构造方法参数注入
在上一篇文章Dagger2最简单的入门我们写了一个最简单的demo来介绍Dagger2,我们通过@Inject注解构无参造器来注入对象 那么如果构造器有参数,且这个参数也需要注入,又该怎么写呢? 本篇基于上一篇文章Dagger2最简单的入门,代码片段也是以上一篇文章的demo修改的,所以看本篇之前先 ...
Dagger2最简单的入门
啰嗦几句这几天看Dagger看得晕头转向的,我觉得还不如动手敲几行代码,跑一跑遛一遛,边敲边理解,一口吃不成胖子,先从最简单的开始。 既然Dagger的最主要功能就是依赖注入,我就来一个炒鸡简单的demo,在一个Activity中注入一个对象,然后显示这个对象的信息,就这样。一下子讲太多的东西反而会 ...