使用覆盖模块扩展对象图
2022-09-03 06:24:51
我现在正在玩Dagger,显然有些功能不适合我。
我实际上正在尝试使用模拟模块扩展我的ObjectGraph(via),该模块覆盖了已经创建的图形中的一个真实模块。但显然我的模拟模块被忽略了,所以调用了真正的接口。ObjectGraph.plus()
但是,如果我尝试在图形创建阶段提供我的模拟模块 - 一切正常。
在我的情况下,覆盖来自MockModule1
RealModule1
不起作用:
objectGraph = ObjectGraph.create(new RealModule1(),
new RealModule2(),
new RealModule3());
objectGraph = objectGraph.plus(new MockModule1());
工作正常
objectGraph = ObjectGraph.create(new RealModule1(),
new RealModule2(),
new RealModule3(),
new MockModule1());
RealModule1.java
@Module(injects = MainActivity.class)
public class RealModule1 {
@Provides
ISomething provideSomething() {
return new Something();
}
}
模拟模块1.java
@Module(overrides=true, injects = MainActivity.class)
public class MockModule1 {
@Provides
ISomething provideSomething() {
return new MockSomething();
}
}
我错过了什么吗?