我正在制作一个快速样本以适应Dagger2,但我一度陷入困境。
我有一类想成为单身人士的课程,但Dagger2一直给我提供不同的对象。

这是我的源代码:

单身人士班

public class SingletonClass {

}


SingletonComponent

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


单例模块

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


主要

public static void main(String[] args) {
    SingletonClass comp = DaggerSingletonComponent.create().singleton();
    System.out.println("singleton: " + comp);
    comp = DaggerSingletonComponent.create().singleton();
    System.out.println("singleton: " + comp);
}


但是我将不同的对象记录到标准输出中。
有什么想法吗?

最佳答案

尝试:

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

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

09-27 12:41