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
何か不足していますか? Lazy
をProvider
に置き換えようとしましたが、結果は同じです。
私がBからAに怠け者を移した場合、これはうまくいくと思います。 –
悲しいことに、これは役に立たない。 :( –
"新しい"文でインスタンスを作成する方法は同じですか?同じサイクルがあります。 – salcosand