我正在制作一个快速的样本以适应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。 有什么想法吗?
答案 0 :(得分:0)
尝试:
@Module
public class SingletonModule {
private SingletonClass sing = new SingletonClass();
@Provides
@Singleton
SingletonClass provideSingletonClass() {
return sing;
}
}
答案 1 :(得分:0)
这是一个愚蠢的错误,但如果有人偶然发现这样的问题,我会留下答案。
我正在做的是创建新图表,而不是从之前创建的图表中请求实例。