【问题标题】:How inject Map<> or Set<> (dagger 2 multibindings) with Toothpick如何用牙签注入 Map<> 或 Set<>(匕首 2 多重绑定)
【发布时间】:2017-12-27 11:47:40
【问题描述】:

Dagger 2 能够通过多重绑定注入 set 或 map。 如何在牙签中做到这一点

例如我想要 @Inject constructor(val map: Map&lt;String, ISyncRepository&gt;)

【问题讨论】:

    标签: android dependency-injection toothpick-di


    【解决方案1】:

    可能是这样的:

       @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);
    

    【讨论】:

    • 问题是 - 如何在牙签中做到这一点
    猜你喜欢
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多