java - 如何使用拖动器 2 创建一个带有模拟数据的单例类?
问题描述
嗨,我想知道是否可以使用模拟数据和拖动器创建一个单例
我知道不使用拖动器 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 与数据一起放置的设置函数或类似函数在哪里,以及如何调用。
谢谢
解决方案
您只需要在其中一个模块中添加一个方法并使用 @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中的“Singletons and Scoped Bindings”部分
推荐阅读
- python - 如何检查一个变量的两个条件?
- fabricjs - fabricjs 剪辑路径不按尺寸工作
- vb.net - Tapi 与团队/其他 cisco 系统一起使用
- javascript - ESLint:让它理解///
VS Code 中有什么方法可以让 ESLint 理解
/// <reference path
指令,这样它就不会no-undef
为引用的 JS 文件中定义的变量/函数抛出错误?它似乎以某种方式工作,但不完全:VS Code function descri
- php - 获取当前路由规则
- bash - 遍历给定文件夹的文件 - Bash
- jquery - 按文本而不是它的值对数据表列进行排序
- grpc - 这对 proto 文件来说是一个糟糕的结构吗
- c# - 父实体上的软删除,但子/关系 EF Core 上的硬删除
- python - 无法同时运行烧瓶和 scapy