【发布时间】:2017-12-27 11:47:40
【问题描述】:
Dagger 2 能够通过多重绑定注入 set 或 map。 如何在牙签中做到这一点
例如我想要
@Inject constructor(val map: Map<String, ISyncRepository>)
【问题讨论】:
标签: android dependency-injection toothpick-di
Dagger 2 能够通过多重绑定注入 set 或 map。 如何在牙签中做到这一点
例如我想要
@Inject constructor(val map: Map<String, ISyncRepository>)
【问题讨论】:
标签: android dependency-injection toothpick-di
可能是这样的:
@Binds
@IntoMap
@TheMapKey(“your key”)
abstract fun getSyncRepository() : ISyncRepository
看下面2个样本
https://google.github.io/dagger/multibindings.html
https://blog.kotlin-academy.com/understanding-dagger-2-multibindings-viewmodel-8418eb372848
为
@Inject constructor(
private val creators: Map<Class<out ViewModel>, @JvmSuppressWildcards
Provider<ViewModel>>
)
使用:
@Binds
@IntoMap
@ViewModelKey(UserViewModel.class)
abstract ViewModel bindUserViewModel(UserViewModel userViewModel);
【讨论】: