嗨,我想知道是否可以用mockdata和dragger创建一个单例。
我知道在没有dragger 2的情况下进行操作的标准代码。
public class Singleton {
private Singleton() { }
private static class SingletonHolder {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
public String getFoo() {
return "bar";
}
}在这里,我知道如何将数组列表与模拟的数据放在一起,但是如何使用匕首实现,设置函数在哪里,或者类似于如何将ArrayList与数据放在一起,以及如何调用。
谢谢
发布于 2019-01-24 11:11:09
您只需在一个模块中添加一个方法,并使用@Singleton注释对其进行注释。例如:
@Module
public class MyModule {
@Provides
@Singleton
MockData provideMockData() {
return new MockData(Arrays.asList("A", "B", "C"));
}
@Provides
OtherClass provideOtherClass(MockData mockData) {
return new OtherClass(mockData);
}
}
public class MockData {
private List<String> list;
public MockData(List<String> list){
this.list = list;
}
public List<String> getList() {
return list;
}
}检查https://google.github.io/dagger/users-guide.html中的“单例和作用域绑定”一节
https://stackoverflow.com/questions/54344825
复制相似问题