来自子类的Dagger引用模块在运行时

时间:2018-04-04 12:37:00

标签: android dagger-2 dagger android-architecture

我有Android库LBase,L1,L2,依赖性如LBase-> L1和LBase - > L2。 Android应用程序A1由L1和A2构建而来自L2

在LBase

public interface iA {

}

public A implements iA {

}

@Component(modules = ModuleBase.class)
public interface BaseComponent {
    iA getA()
}

@Module
public class ModuleBase.class {
   @Provides
   public iA createA() {
     return new A();
   } 

}

在L1

public class A1 implements iA {

}

@Module
public class ModuleL1 extends ModuleBase {
   @Provides
   public iA createA() {
     return new A1();
   } 
}

在L2

public class A2 implements iA {

}

@Module
public class ModuleL2 extends ModuleBase {
   @Provides
   public iA createA() {
     return new A2();
   } 
}

似乎ModuleBase.class不能是接口或抽象类,所以我正在寻求帮助来实现同样的目标。

基本上我要做的是在运行时将LBase(而不是ModuleBase.class)中的implmentation模块分别提供给A1或A2中的“ModuleL1.class”或“ModuleL2.class”。

0 个答案:

没有答案