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