【发布时间】:2019-12-08 18:17:06
【问题描述】:
我正在使用Dagger,我想将@injectRepository 转换为我的ViewModel,所以我创建了一个抽象模块,其中我Map 存储库类:
我的抽象模块:
@Module
abstract class RepositoryModule{
@Binds
@IntoMap
@ClassKey(RepositoryStatus::class)
abstract fun provideRepositoryStatus(repositoryStatus: RepositoryStatus): RepositoryStatus
}
我的ViewModel 模块,其中我包含RespositoryModule:
@Module(includes = [
RepositoryModule::class
])
abstract class ViewModelModule {
@Binds
@IntoMap
@ViewModelKey(MainViewModel::class)
abstract fun bindsMainViewModel(viewModel: MainViewModel): ViewModel
}
我不知道这到底是怎么工作的,Dagger 怎么知道我有一张地图并且我将它与我的ViewModel 绑定?因为我从不使用该方法。而且我有一个包含在图表中的地图,所以我认为除非我调用它,否则它无法使用。
【问题讨论】:
标签: java android kotlin dagger-2