Scala学习笔记(13)——隐式转换

1 泛型

[T <: UpperBound]
[T >: LowerBound]
[T <% ViewBound]
[T : ContextBound]
[+T]
[-T]

1.1 案例1

package cn.tzb.implict

class Pair[T <: Comparable[T]] {
  def bigger(first: T, second: T) = {
    if (first.compareTo(second) > 0) first else second
  }
}

object Pair {
  def main(args: Array[String]): Unit = {
    val p = new Pair[Integer]
    println(p.bigger(1, 2))
  }
}

1.2 案例2

Boy.scala

package cn.tzb.implict

class Boy(val name:String,var faceValue:Int) extends Comparable[Boy]{
  override def compareTo(o: Boy): Int = {
    this.faceValue - o.faceValue
  }
}

TestBoy

package cn.tzb.implict

object TestBoy {
  def main(args: Array[String]): Unit = {
    val b1 = new Boy("Mike", 99)
    val b2 = new Boy("John", 66)

    val arr = Array[Boy](b1, b2)

    var sorted = arr.sortBy(x => x).reverse

    for (b <- sorted) {
      println(b.name)
    }
  }
}

Mike
John

Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值