Java 如何注射单胞体?
我正在快速取样以适应匕首2,但有一点被卡住了。 我有一个类,我想成为一个单体,但Dagger2一直给我不同的对象 以下是我的源代码: 单音班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
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;
}
}