官方的示意及其简约,该说的一概没说
我在这里给大家一个完整的例子
//test.kt
fun <T> cloneWhenGreater(list: List<T>, threshold: T): List<T>
where T:Comparable<T>, T:Cloneable {
return list.filter{it>threshold}//.map{it.clone()}
}
class MySelf(val n:Int) : Cloneable, Comparable<MySelf> {
val num:Int = n
override fun clone() : MySelf {
return MySelf(num)
}
override fun compareTo(other:MySelf):Int {
if (this.num<other.num) {
return -1
}
else if (this.num==other.num) {
return 0
}
else {
return 1
}
}
}
fun main(args: Array<String>) {
val l1 = listOf(MySelf(1), MySelf(18), MySelf(89), MySelf(2), MySelf(13))
val rl = cloneWhenGreater<MySelf>(l1, MySelf(2))
println("rl is $rl")
}
//结果
rl is [MySelf@7006c658, MySelf@34033bd0, MySelf@47fd17e3]
Finally:
官网上说,我们还不成熟,还不。。。。
事实上也就是不成熟
比如这里where子句的语法就是我修正了的,如果你按官网上说的写where T:Comparable, Cloneable去写,那你就等着编译不过吧。哈哈哈
好了,总得来说还是作为开发者的我们了解的还不太够,否者,很多不成熟都是可以用它已经实现了的部分来更正的啦。
以后再叙吧,再会!