scala类型参数的上界和下界

class Pair[T <: Comparable[T]](val first:T,val second:T) //类型T必需要是Comparable接口的子类(即T是Comparable的下界)
{
  def bigger = if(first.compareTo(second) > 0) first else second
}
class Pair_Lower_Bound[T](val first:T,val second:T)
{
  def replaceFirst[R >: T](newFirst:R) = new Pair_Lower_Bound(newFirst,second) //类型R是T类型的父类(也即R是T的上界)
}
object Type_Variables_BoundsTest {
  def main(args: Array[String]): Unit = {
    val pair = new Pair("aspark","hadoop")
    println(pair.bigger)  //会打印hadoop
  }
}

另外,若是某个类或函数写成以下形式:函数

def onefun[K,V,F <:Comparable[T]](........) = {......}oop

则代表onefun函数中有三个类型参数,而且每一个参型参数的上界是Comparable[T]spa

相关文章
相关标签/搜索