您知道为什么以下代码无法编译吗?
fun <T : Comparable<T>> naturalSort(list: List<T>): List<T> {
val natComparator = naturalOrder<T>() // compiler error here
return list.sortedWith(natComparator)
}
第二行导致编译器错误:
Type参数不在其范围内:应该是“ Comparable”的子类型
更新: 它在https://play.kotlinlang.org/中对我有效,但在Eclipse中以及使用项目的Gradle构建脚本(从Eclipse)构建项目时,该方法均失败。
这是我的Gradle构建环境的样子:
答案 0 :(得分:0)
已解决。该问题是由于由于在实际代码中导入语句而使用了错误的)(导入语句没有问题,不确定是否使用java.lang.Comparable来代替) Kotlin(可比)。在代码中指定应使用Comparable
接口引起的(kotlin.Comparable
可以解决此问题:
fun <T : kotlin.Comparable<T>> naturalSort(list: List<T>): List<T> {
val natComparator = naturalOrder<T>() // no error
return list.sortedWith(natComparator)
}
感谢所有回复的人。