3
我有匕首以下設置,我試圖遷移到匕首2:匕首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
,匕首2給了我下面的編譯時錯誤:
error: AppComponent.inject() contains a dependency cycle
我錯過了什麼?我試着用Provider
替換Lazy
,但結果是一樣的。
我認爲這將工作,如果你懶惰從B移動到A. –
可悲的是,這並沒有幫助。 :( –
你將如何使用「新」語句創建實例?您將擁有相同的循環。 – salcosand