[英]Dagger 2 inject() contains a dependency cycle
我在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也會給出以下編譯時錯誤:
錯誤:AppComponent.inject()包含一個依賴循環
我錯過了什么嗎? 我嘗試用提供Provider
替換Lazy
但結果是一樣的。
我的問題是我使用的是Dagger的2.0版,這仍然是一個懸而未決的問題 。 一旦我將其更新到當前的2.1版本,問題就不再存在了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.