使用Dagger2进行内部依赖注入

睡觉

我想使用Dagger2。

说我有以下依赖项:

  • A级取决于B级
  • B级取决于C级

我试图创建一个提供B和C的模块,以及一个提供A的组件,但是只有B被注入到A中,并且B中对C的引用仍然为空。

我需要使用匕首实现的类结构是什么?

史诗熊猫力量

您可以使用构造函数注入或字段注入。以及constructor-inject或module-inject。

Constructor- @ Inject可能有问题,因为自从黎明以来我就一直在使用模块和组件。

@Singleton
public class A {
    B b;

    @Inject
    public A(B b) {
        this.b = b;
    }
}

@Singleton
public class B {
    C c;

    @Inject
    public B(C c) {
        this.c = c;
    }
}

@Singleton
public class C {
    @Inject
    public C() {
    }
}

@Singleton
@Component
public interface SingletonComponent {
    void inject(MainActivity mainActivity);
}

或者

public class A {
    private B b;

    public A(B b) {
        this.b = b;
    }
}

public class B {
    private C c;

    public B(C c) {
        this.c = c;
    }
}

public class C {
}

@Module
public class ProviderModule {
    @Provides
    @Singleton
    public A a(B b) {
        return new A(b);
    }

    @Provides
    @Singleton
    public B b(C c) {
        return new B(c);
    }

    @Provides
    @Singleton
    public C c() {
        return new C();
    }
}

@Component(modules={ProviderModule.class})
@Singleton
public interface SingletonComponent {
    A a();
    B b();
    C c();

    void inject(MainActivity mainActivity);
}

或现场注入

@Singleton
public class A {
    @Inject
    B b;

    @Inject    
    public A() {
    }
}

@Singleton
public class B {
    @Inject
    C c;

    public B() {
    }
}

@Singleton
public class C {
    @Inject
    public C() {
    }
}

@Component
@Singleton
public interface SingletonComponent {
    A a();
    B b();
    C c();

    void inject(MainActivity mainActivity);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用dagger2进行依赖项注入时是否可以只注入超类?

来自分类Dev

如何在Android中使用Dagger2依赖注入和Robolectric进行测试?

来自分类Dev

Android Dagger2 依赖注入

来自分类Dev

如何使用Dagger2将依赖项注入任何类型的对象中?

来自分类Dev

无法在Java中的Android使用dagger2注入的片段依赖

来自分类Dev

Dagger 2的依赖注入

来自分类Dev

使用Dagger 2查看依赖项注入

来自分类Dev

Dagger2 使用参数注入类(使用 Room)

来自分类Dev

Dagger2 从两个不同的类注入依赖项的最佳方式

来自分类Dev

使用Dagger 2进行方法注入

来自分类Dev

Dagger2没有注入领域

来自分类Dev

Dagger2 和嵌套子注入

来自分类Dev

未注入 Android Dagger2 字段

来自分类Dev

Dagger 2注入依赖链

来自分类Dev

Dagger2 - 跨模块依赖

来自分类Dev

如何使用Dagger 2注入pojo依赖项?

来自分类Dev

Dagger2:场注入,其中也有注入场

来自分类Dev

Dagger2 无法在注入的类中注入字段

来自分类Dev

如何解决错误:使用Dagger2进行翻新时出现[Dagger / MissingBinding]

来自分类Dev

在AndroidTest类中使用dagger2注入OkHttp以使OkHttp3IdlingResource再生

来自分类Dev

mvvm与ViewModelFactory一起使用dagger2,不了解默认注入

来自分类Dev

如何使用Dagger2在ViewModel构造函数中注入WorkManager实例?

来自分类Dev

如何在Dagger2 android中为ViewModel使用构造函数注入?

来自分类Dev

在AndroidTest类中使用dagger2注入OkHttp以使OkHttp3IdlingResource再生

来自分类Dev

可以使用 dagger2 注入内容视图吗

来自分类Dev

使用dagger2创建模型时如何将模型注入演示者?

来自分类Dev

如何处理应用程序后台以恢复使用 Dagger2 注入的 Exoplayer?

来自分类Dev

使用@Binds和@Inject字段的Dagger2依赖关系循环

来自分类Dev

Dagger2:注入 RxJava2 函数

Related 相关文章

  1. 1

    使用dagger2进行依赖项注入时是否可以只注入超类?

  2. 2

    如何在Android中使用Dagger2依赖注入和Robolectric进行测试?

  3. 3

    Android Dagger2 依赖注入

  4. 4

    如何使用Dagger2将依赖项注入任何类型的对象中?

  5. 5

    无法在Java中的Android使用dagger2注入的片段依赖

  6. 6

    Dagger 2的依赖注入

  7. 7

    使用Dagger 2查看依赖项注入

  8. 8

    Dagger2 使用参数注入类(使用 Room)

  9. 9

    Dagger2 从两个不同的类注入依赖项的最佳方式

  10. 10

    使用Dagger 2进行方法注入

  11. 11

    Dagger2没有注入领域

  12. 12

    Dagger2 和嵌套子注入

  13. 13

    未注入 Android Dagger2 字段

  14. 14

    Dagger 2注入依赖链

  15. 15

    Dagger2 - 跨模块依赖

  16. 16

    如何使用Dagger 2注入pojo依赖项?

  17. 17

    Dagger2:场注入,其中也有注入场

  18. 18

    Dagger2 无法在注入的类中注入字段

  19. 19

    如何解决错误:使用Dagger2进行翻新时出现[Dagger / MissingBinding]

  20. 20

    在AndroidTest类中使用dagger2注入OkHttp以使OkHttp3IdlingResource再生

  21. 21

    mvvm与ViewModelFactory一起使用dagger2,不了解默认注入

  22. 22

    如何使用Dagger2在ViewModel构造函数中注入WorkManager实例?

  23. 23

    如何在Dagger2 android中为ViewModel使用构造函数注入?

  24. 24

    在AndroidTest类中使用dagger2注入OkHttp以使OkHttp3IdlingResource再生

  25. 25

    可以使用 dagger2 注入内容视图吗

  26. 26

    使用dagger2创建模型时如何将模型注入演示者?

  27. 27

    如何处理应用程序后台以恢复使用 Dagger2 注入的 Exoplayer?

  28. 28

    使用@Binds和@Inject字段的Dagger2依赖关系循环

  29. 29

    Dagger2:注入 RxJava2 函数

热门标签

归档