Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用dragger 2创建具有模拟数据的单例类?_Java_Android_Dragger - Fatal编程技术网

Java 如何使用dragger 2创建具有模拟数据的单例类?

Java 如何使用dragger 2创建具有模拟数据的单例类?,java,android,dragger,Java,Android,Dragger,嗨,我想知道是否有可能用mockdata和dragger创建一个singleton 我知道不使用dragger 2的标准代码 public class Singleton { private Singleton() { } private static class SingletonHolder { private static final Singleton INSTANCE = new Singleton(); } public stati

嗨,我想知道是否有可能用mockdata和dragger创建一个singleton

我知道不使用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";
    }
}
在这里,我知道在何处放置带有mock数据的数组列表,但是如何使用dagger来执行该操作?在何处是用于放置带有数据的ArrayList的设置函数或类似函数,以及如何调用


谢谢

您只需在其中一个模块中添加一个方法,并使用@Singleton annotation对其进行注释。例如:

@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;
    }
}
@模块
公共类MyModule{
@提供
@独生子女
MockData provideMockData(){
返回新的MockData(Arrays.asList(“A”、“B”、“C”));
}
@提供
OtherClass提供其他类(MockData MockData){
返回新的OtherClass(mockData);
}
}
公共类模拟数据{
私人名单;
公共模拟数据(列表){
this.list=列表;
}
公共列表getList(){
退货清单;
}
}
检查中的“单例和作用域绑定”部分

如何在其他类中获取列表?您的意思是如何在其他类中获取MockData实例?您可以在其他类中将其作为字段使用@Inject对其进行注释,或者您可以创建其他提供程序并获取MockData作为参数。我改变了这个例子