我正在使用Dagger 2注入为客户端提供一些依赖:
public class Dependency { @Inject Dependency() { } voID check() { System.out.print("Instantiated"); }}public class ClIEnt { @Inject Dependency dependency; ClIEnt() { ClIEntComponent component = DaggerClIEntComponent.create(); component.inject(this); } voID checkDependency() { dependency.check(); }}@Componentpublic interface ClIEntComponent { voID inject(ClIEnt clIEnt);}public class Test { public static voID main(String... args) { ClIEnt clIEnt = new ClIEnt(); clIEnt.checkDependency(); }}
它工作正常,但现在我想让我的依赖单身.我怎样才能实现它?我应该为这个依赖项创建模块,并使用单例注释注释提供方法,或者我有其他选项来避免模块创建?
解决方法:
在类的顶部添加@Singleton并将@Singleton注释添加到组件中.
@Singletonpublic class Dependency { @Inject Dependency() { } voID check() { System.out.print("Instantiated"); }}@Singleton@Componentpublic interface ClIEntComponent { voID inject(ClIEnt clIEnt);}
您还应该将组件的创建移动到更好的位置 – 来自app对象的onCreate方法是正确的位置.
总结以上是内存溢出为你收集整理的java – Dagger 2注入没有模块的单例全部内容,希望文章能够帮你解决java – Dagger 2注入没有模块的单例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)