類型變量的界定:
類型變量的上界,類型變量的下界。
上界就是類型必須是界定類型的子類,看如下示例:
package com.dt.scala.type_parameterization // 我們需要定義一個泛型類Pair,泛型類中有一個bigger方法,用來比較傳入的參數 // 此時泛型類型必須是Comparable的子類,我們可以使用 <: 符號來限定傳入的類型 class Pair[T <: Comparable[T]](first: T,second:T){ def bigger ={ if (first.compareTo(second)>=0) first else second } } object Type_variables_Bounds { def main(args: Array[String]): Unit = { val pair = new Pair("Spark","Hadoop") println(pair.bigger) } }
下屆:類型必須是界定類型的父類
// 我們使用 >: 符號來做下屆限定 class Pair_Lower_Bounds[T](first: T,second:T){ def replace[R >: T](newFirst: R) = { //R必須是T的父類 new Pair_Lower_Bounds(newFirst,second) } }