【发布时间】:2020-08-19 06:17:04
【问题描述】:
在将 dagger 接口从 java 转换为 Kotlin 时遇到一些问题
我得到了 [Dagger/MissingBinding] java.util.Map 不能在没有 @Provides 注释的方法的情况下提供。
这是我的界面
interface TopicConfigModule {
@Binds
@IntoMap
@StringKey(NAME)
fun bindCommandHandler(handler: TopicCommandHandler): CommandHandler
companion object {
@JvmStatic
@Provides
@FragmentScope
fun provideHubsConfig(
commandRegistry: Map<String, CommandHandler>
): Config {
return ...
}
}
}
CommandHandler是java接口
public interface HubsCommandHandler {```}
【问题讨论】:
-
尝试使用
commandRegistry: Map<String, @JvmSuppressWildcards CommandHandler>,你也不需要@JvmStatic(我假设你使用的是dagger 2.26或更高版本) -
@IR42 它有效,但我不确定我们为什么需要 JvmSuppressWildcards 。请写下答案,我会投票给你的答案。
标签: java android kotlin dagger-2 dagger