首页 > 解决方案 > 强制 Dagger 2 创建注入字段的实例

问题描述

我有一个关于 Dagger 2 的问题。是否可以强制 dagger 在不调用组件及其构建器的情况下创建注入字段的实例?

例如,如果我们有这样的提供者:

@provider ClassA getClassA();

然后在其他类中我可以直接使用它:

Class ClassB{
    //May be I can do something here to force dagger to create an instance of ClassA
    @inject ClassA classA;

    void doSth(){
        classA.prop1 ...
    }
}

注意:我无权访问 ClassB 中的 dagger 组件!

标签: androiddagger-2

解决方案


如果将构造函数标记为@Inject并从组件中获取 ClassB,则这是自动的。

class ClassB{
    @Inject
    ClassB() {
    }

    @Inject ClassA classA;

    void doSth(){
        classA.prop1 ...
    }
}

推荐阅读