Kotlin flatMapTo不编译
我想将集合平面映射到单个集合。我有以下代码,它不是用IntelliJ IDEA编译的。我不知道为什么:Kotlin flatMapTo不编译,kotlin,Kotlin,我想将集合平面映射到单个集合。我有以下代码,它不是用IntelliJ IDEA编译的。我不知道为什么: listOf(HashSet<String>()).flatMapTo(HashSet<String>()) { it.iterator() as Iterator<String> } listOf(HashSet()).flatMapTo(HashSet()){it.iterator()作为迭代器} lambda上最后有一条非常混乱的错误消息,上面说:
listOf(HashSet<String>()).flatMapTo(HashSet<String>()) { it.iterator() as Iterator<String> }
listOf(HashSet()).flatMapTo(HashSet()){it.iterator()作为迭代器}
lambda上最后有一条非常混乱的错误消息,上面说:
类型不匹配。必需:(kotlin.collections.HashSet/*=
java.util.HashSet/)→ 我们发现:
(kotlin.collections.HashSet/=java.util.HashSet*/)
→ 迭代器
但它们都是完全一样的吗?我不明白为什么这不管用
flatMapTo
功能上也会显示一条错误消息,并显示:
类型推断失败:
inline fun Iterable.flatMapTo(
目的地:C,变换:(T)→ Iterable):无法应用C
到
接收者:列出参数:(
kotlin.collections.HashSet/*=java.util.HashSet&ast;/,
(kotlin.collections.HashSet/*=java.util.HashSet&ast;/)
→ 迭代器)
*希望我没有忘记引号中的任何特殊字符。必须用html实体替换
迭代器。它应该返回一个Iterable
。Set
已经是一个Iterable
你所需要的只是
listOf(HashSet<String>()).flatMapTo(HashSet()) { it }
listOf(HashSet()).flatMapTo(HashSet()){it}