Android Kotlin泛型类型,类型推断失败

Android Kotlin泛型类型,类型推断失败,android,android-studio,kotlin,android-studio-3.0,Android,Android Studio,Kotlin,Android Studio 3.0,Kotlin的参考文件说这个例子是有效的 fun cloneWhenGreater(列表:列表,阈值:T):列表 式中T:可比, T:可克隆{ return list.filter{it>threshold}.map{it.clone()} } 但在Android studio 3.0中,它在it.clone()下显示了一条细细的红线。错误消息是: 类型推断失败。预期类型不匹配必需:列表 找到:列表 为什么这个例子不能被编译 问题在于使用clone(),正如编译器抱怨的那样,它受到保护。这里

Kotlin的参考文件说这个例子是有效的

fun cloneWhenGreater(列表:列表,阈值:T):列表
式中T:可比,
T:可克隆{
return list.filter{it>threshold}.map{it.clone()}
}
但在Android studio 3.0中,它在
it.clone()下显示了一条细细的红线。错误消息是:

类型推断失败。预期类型不匹配
必需:
列表

找到:
列表


为什么这个例子不能被编译

问题在于使用
clone()
,正如编译器抱怨的那样,它受到
保护。这里已经讨论了这个问题:

fun <T> cloneWhenGreater(list: List<T>, threshold: T): List<T>
    where T : Comparable<T>,
          T : Cloneable {
  return list.filter { it > threshold }.map { it.clone() }
}