【发布时间】:2020-04-18 16:15:01
【问题描述】:
我想将集合的集合平面映射到单个集合。我有以下代码无法在 IntelliJ IDEA 中编译。我不知道为什么:
listOf(HashSet<String>()).flatMapTo(HashSet<String>()) { it.iterator() as Iterator<String> }
最后在 lambda 上有一条非常令人困惑的错误消息:
类型不匹配。必需:(kotlin.collections.HashSet
/* = java.util.HashSet /) → Iterable 发现: (kotlin.collections.HashSet = java.util.HashSet/ */) → 迭代器
但它们完全一样吗?我很困惑为什么这不起作用。
flatMapTo 函数上还显示一条错误消息,并说:
类型推断失败:
inline fun
> Iterable .flatMapTo ( 目的地:C,变换:(T)→Iterable ):C不能应用 到 接收者:列表
/* = java.util.HashSet */> 参数:( kotlin.collections.HashSet /* = java.util.HashSet */, (kotlin.collections.HashSet /* = java.util.HashSet */) → 迭代器 )
*希望我没有忘记引号中的任何特殊字符。必须用 html 实体替换
【问题讨论】:
标签: kotlin