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