码迷,mamicode.com
首页 > 其他好文 > 详细

Scala 类型界定

时间:2017-09-17 13:20:50      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:app   str   param   rabl   demo   com   compare   bsp   span   

 

 

class User(val userName: String,val age: Int) extends Comparable[User] {
  override def compareTo(o: User): Int = this.age - o.age
}


object OrderingDemo extends App {

  /**
    * 类型界定,上界
    *
    * @param u1
    * @param u2
    * @tparam T T必须是Comparable[T]的子类
    * @return
    */
  def compare[T <: Comparable[T]](u1: T, u2: T): Int = { 

    if (u1.compareTo(u2) == 0) 0 else if (u1.compareTo(u2) > 0) 1 else -1

  }


  val u1 = new User("u1", 18)
  val u2 = new User("u2", 19)

  //  compare(u1,u2) //class User(userName: String, age: Int)的话,编译不通过

  println(compare(u1,u2)) //class User(val userName: String,val age: Int) extends Comparable[User]


}

 

Scala 类型界定

标签:app   str   param   rabl   demo   com   compare   bsp   span   

原文地址:http://www.cnblogs.com/leodaxin/p/7534734.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!