我有 android 库 LBase、L1、L2,它们具有 LBase->L1 和 LBase->L2 等依赖项。以及从 L1 构建的 android Apps A1 和从 L2 构建的 A2
在 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 不能是接口或抽象类,所以我正在寻求帮助来实现相同的目标。
基本上我要做的是在运行时分别在 A1 或 A2 中的“ModuleL1.class”或“ModuleL2.class”中提供 LBase(而不是 ModuleBase.class)中的实现模块。