排除来自apk的dagger2类生成的

时间:2017-08-01 08:12:39

标签: android dagger-2 dagger

我有抽象的FirstClass和他的孩子班SecondClass 在第二节课中,我有匕首注射:

component.inject(this);

_MembersInjector生成了这两个类 - FirstClass_MembersInjectorSecondClass_MembersInjector

如何从构建中排除FirstClass_MembersInjector

1 个答案:

答案 0 :(得分:0)

假设你有类似的东西:

class FirstClass {

    @Inject Integer firstClassField;

}

然后:

class SecondClass extends FirstClass {

    @Inject String secondClassField;

    void injectMembers() {
        DaggerComponent.builder().build().inject(this);
    }
}

Dagger 2为所有具有@Inject注释字段的类生成成员注入器,即属性注入的候选者。无论您是否实际在代码中的某个位置请求注入该类,都是如此。

在上面的设计示例中,即使未在生成的Dagger组件中使用FirstClass_MembersInjector,也会生成A(const A& op, int a_) : prop_a(op.prop_a_), prop_b(op.prop_b_), // continue for all members ... a(a_) // except a { }

解决问题的方法可能在于更好地组织项目,而不是尝试为Dagger 2配置异常行为。