小编tho*_*n86的帖子

Dagger2 和 Kotlin:@Binds 不适用于 @IntoMap

我正在从这里上课:https ://dagger.dev/tutorial/07-two-for-the-price-of-one

当我更改代码时

@Module
abstract class HelloWorldModule {
    @Binds
    abstract fun helloWorldCommand(command: HelloWorldCommand): Command
}
Run Code Online (Sandbox Code Playgroud)

进入

@Module
abstract class HelloWorldModule {
    @Binds
    @IntoMap
    @StringKey("hello")
    abstract fun helloWorldCommand(command: HelloWorldCommand): Command
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

error: [Dagger/MissingBinding] Map<String,? extends Command> 
cannot be provided without an @Provides-annotated method.
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?它在 Kotlin 上不起作用吗?

dependency-injection kotlin dagger dagger-2

1
推荐指数
1
解决办法
1037
查看次数

标签 统计

dagger ×1

dagger-2 ×1

dependency-injection ×1

kotlin ×1