0

我有 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)中的实现模块。

4

0 回答 0