gpt4 book ai didi

Kotlin 中的 Hadoop 上下文类型参数

转载 作者:可可西里 更新时间:2023-11-01 14:22:24 26 4
gpt4 key购买 nike

在 Kotlin 中实现 Hadoop Mapper 或 Reducer 时,我从编译器那里得到了一个有趣的矛盾。任何时候你使用 Context对象,如果您不提供类型参数 (<KEYIN, VALUEIN, KEYOUT, VALUEOUT>),编译器会给出一个错误提示“需要 4 个类型参数”,如果您确实提供了类型参数,编译器会提示“不需要类型参数”。知道这里发生了什么吗?

一个例子:

// gives "4 type arguments expected"
override fun setup(context: Context?) {
super.setup(context)
}

// gives "No type arguments expected"
override fun setup(context: Context<KeyIn, ValueIn, KeyOut, ValueOut>?) {
super.setup(context)
}

指定 Mapper<KeyIn, ValueIn, KeyOut, ValueOut>.Context使其编译,但由于 ContextMapper 的内部类, 不应该是 Context 的类型当您指定 Mapper 的类型时被暗示您正在扩展,就像在 Java 中一样?

最佳答案

Kotlin 在 Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT> 上期待“4 个类型参数”而不是在 Context 上在 Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT>.Context .

一个例子:

override fun setup(context: Mappert<KeyIn, ValueIn, KeyOut, ValueOut>.Context?) {
super.setup(context)
}

Context 的类型参数可能是应该/可以暗示。我建议在 Kotlin YouTrack 中创建一个问题.

关于Kotlin 中的 Hadoop 上下文类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35491648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com