我有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”。