我在Dagger中尝试将以下设置迁移到Dagger 2:
public class Origin { final A a; public Origin(A a) { this.a = a; }}public class A { final B b; @Inject public A (B b) { this.b = b; }}public class B { final Lazy<A> a; @Inject public B (Lazy<A> a) { this.a = a; }}
然后在我的模块上:
@ProvIDes @Singleton Origin provIDesOrigin(A a) { return new Origin(a);}
问题是,即使我使用的是Lazy,Dagger 2也会给我带来以下编译时错误:
error: AppComponent.inject() contains a dependency cycle
我想念什么吗?我尝试用ProvIDer替换Lazy,但结果是相同的.
解决方法:
我的问题是我正在使用Dagger 2.0版本,该版本仍然是开放的issue.一旦将其更新为当前的2.1版本,该问题就不再存在.
总结以上是内存溢出为你收集整理的匕首2 inject()包含一个依赖周期全部内容,希望文章能够帮你解决匕首2 inject()包含一个依赖周期所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)