我在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()包含一个依赖循环
我错过了什么吗?我尝试用Lazy
替换Provider
,但结果是一样的。