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

相關文章
相關標籤/搜索