使用ObjectGraph.plus()
根据buildType创建包含不同模块的子图的优雅方法是什么?
我希望ObjectGraph.plus(new ModuleA())
用于buildType A,ObjectGraph.plus(new ModuleB())
用于buildType B(在我的情况下模块B覆盖模块A)。
我已经在做类似于包含的内容,但我无法想到用子图表来做到这一点。
答案 0 :(得分:3)
在每个构建类型文件夹中放置一个类,该文件夹具有用于列出模块的静态方法。
// In src/release/java:
public class Modules {
public static Object[] list() {
return new Object[] {
new ModuleA()
};
}
}
// In src/debug/java:
public class Modules {
public static Object[] list() {
return new Object[] {
new ModuleA(),
new ModuleB()
};
}
}
现在,当您致电.create()
或.plus()
时,您可以委托这些方法:
ObjectGraph.create(Modules.list());
查看此实例