Tag: 牙签二

如何从牙签中的相同模块传递依赖项的实例?

假设我有一个模块,其中一个绑定依赖于另一个: class MyModule : Module(){ init { bind(SettingsStorage::class.java).to(PreferencesBasedSettingsStorage::class.java) // how to use createOkHttpClient here? // how to get instance of SettingsStorage to pass to it? bind(OkHttpClient::class.java).to?(???) } private fun createOkHttpClient(settingsStorage: SettingsStorage): OkHttpClient { return OkHttpClient.Builder() .addNetworkInterceptor(MyInterceptor(settingsStorage)) .build() } } 在这里,我可以创建OkHttpClient只有另一个绑定的实例,即SettingsStorage 。 但是怎么做呢? 目前我看不到在模块内部的SettingsStorage绑定实例将其传递给createOkHttpClient() 在匕首,我会简单地创建两个提供者方法,如适当的参数 fun provideSessionStorage(/*…*/): SessionStorage { /* … */ } fun provideOkHttpclient(sessionStorage: SessionStorage): […]