私は、次のモジュールがあります:HomeUi.kt
Dagger 2で循環依存を避けるにはどうすればよいですか?
@Inject lateinit var context: Context
@Inject lateinit var presenter: HomePresenter
で
@Module
class HomeModule(private val context: Context) {
@Provides
fun provideContext() = context
@Provides
fun provideHomeUi(): HomeUi {
return HomeUi()
}
@Provides
@Singleton
fun provideHomePresenter(homeUi: HomeUi): HomePresenter {
return HomePresenter(homeUi)
}
}
これらの注入されたフィールドとここでHomePresenter.kt
@Inject lateinit var context: Context
私のDEPのコンポーネントで、このいずれかを
@Singleton
@Component(modules = arrayOf(
NetworkModule::class,
HomeModule::class
))
interface Deps {
fun inject(homePresenter: HomePresenter)
fun inject(homeActivity: HomeActivity)
fun inject(homeUi: HomeUi)
}
Dagger 2.10を使用していますが、StackOverflowError
がスローされます。私は私の循環依存を避ける方法を探しています。
注:これは無限にインスタンス化している私のHomeUiです。
私はあなたが作成できないオブジェクトに対してのみinject()を使用することであなたのアプローチに従いました。あなたのアドバイスをありがとう! –