Kotlin 范型约束

官方的示意及其简约,该说的一概没说

我在这里给大家一个完整的例子

//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去写,那你就等着编译不过吧。哈哈哈

好了,总得来说还是作为开发者的我们了解的还不太够,否者,很多不成熟都是可以用它已经实现了的部分来更正的啦。

以后再叙吧,再会!

转载于:https://www.cnblogs.com/woodzcl/p/7694138.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值