我在 appModule 中有一个无范围的绑定,并且与使用 Singleton 范围注入的构造函数相同的类。当我在 appComponent 中为 Foo 添加声明时,生成的代码在没有任何即非作用域绑定的情况下拾取模块绑定,而DoubleCheck
不是构造函数注入的 Singleton 绑定,为什么会这样?
@Module
public class AppModule {
@Provides
public Foo provideFoo() {
return new Foo();
}
}
@Component(module = AppModule.class)
@Singleton
public interface AppComponent {
Foo getFoo();
}
@Singleton
class Foo @Inject constructor(){
//..
}