Dagger 2 能够使用多重绑定(bind)注入(inject)集合或映射。 如何在 Toothpick 中做到这一点
例如我想要
@Inject constructor(val map: Map<String, ISyncRepository>)
最佳答案
它可能是这样的:
@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);
关于android - 如何用 Toothpick 注入(inject) Map<> 或 Set<> (dagger 2 multibindings),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47991625/