Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.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 如何注射单胞体?_Java_Android_Dagger 2 - Fatal编程技术网

Java 如何注射单胞体?

Java 如何注射单胞体?,java,android,dagger-2,Java,Android,Dagger 2,我正在快速取样以适应匕首2,但有一点被卡住了。 我有一个类,我想成为一个单体,但Dagger2一直给我不同的对象 以下是我的源代码: 单音班 public class SingletonClass { } 单音分量 @Singleton @Component(modules = { SingletonModule.class }) public interface SingletonComponent { SingletonClass singleton(); } 单音模块 @Mo

我正在快速取样以适应匕首2,但有一点被卡住了。 我有一个类,我想成为一个单体,但Dagger2一直给我不同的对象

以下是我的源代码:

单音班

public class SingletonClass {

}
单音分量

@Singleton
@Component(modules = { SingletonModule.class })
public interface SingletonComponent {
    SingletonClass singleton();
}
单音模块

@Module
public class SingletonModule {
    @Provides
    @Singleton
    SingletonClass provideSingletonClass() {
        return new SingletonClass();
    }
}
主要

但是我要把不同的对象记录到stdout。 想知道为什么吗?

试试:

@Module
public class SingletonModule {
    private SingletonClass sing = new SingletonClass();

    @Provides
    @Singleton
    SingletonClass provideSingletonClass() {
        return sing;
    }
}

这是一个愚蠢的错误,但如果有人偶然发现这样的问题,我会留下一个答案


我所做的是创建新的图形,而不是从以前创建的图形中请求实例。

DaggerSingletonComponent.create和singleton@AshishNegi在我看来,create就是创建一个新的singleton。是不是可能会有一个get?我对匕首不是很熟悉。@Knossos AFAIK,它应该在内部由dagger2 libTry使用get处理。可以想象,有人会想要创建一个全新的实例。
@Module
public class SingletonModule {
    private SingletonClass sing = new SingletonClass();

    @Provides
    @Singleton
    SingletonClass provideSingletonClass() {
        return sing;
    }
}