Kotlin中的Hadoop上下文types参数
在Kotlin中实现Hadoop Mapper或Reducer时,我从编译器中得到一个有趣的矛盾。 任何时候使用Context
对象,如果你不提供types参数( ),并且说“没有types参数”,编译器会给出一个错误, DO提供types参数。 任何想法发生了什么?
一个例子:
// gives "4 type arguments expected" override fun setup(context: Context?) { super.setup(context) } // gives "No type arguments expected" override fun setup(context: Context?) { super.setup(context) }
指定Mapper.Context
使其编译,但由于Context
是Mapper
的内部类,因此当指定要扩展的Mapper
的types时,不应该隐含Context
的types,像在Java中一样?
Kotlin期望Mapper
上的“4types参数” Mapper
而不是Mapper
的Context
Mapper
。
一个例子:
override fun setup(context: Mappert.Context?) { super.setup(context) }
Context
的types参数应该/可以被暗示。 我建议在Kotlin YouTrack中创建一个问题。