如何注射单身?

时间:2015-05-18 15:29:07

标签: java android dagger-2

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

这是我的源代码:

SingletonClass

public class SingletonClass {

}

SingletonComponent

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

SingletonModule

@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);  
}

但是我将不同的对象记录到stdout。 有什么想法吗?

2 个答案:

答案 0 :(得分:0)

尝试:

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

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

答案 1 :(得分:0)

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

我正在做的是创建新图表,而不是从之前创建的图表中请求实例