Scala 深刻淺出實戰經典 第43講:主要介紹類型變量bound


王家林親授《DT大數據夢工廠》大數據實戰視頻 Scala 深刻淺出實戰經典(1-64講)完整視頻、PPT、代碼下載:
百度雲盤:http://pan.baidu.com/s/1c0noOt6
騰訊微雲:http://url.cn/TnGbdC
360雲盤:http://yunpan.cn/cQ4c2UALDjSKy 訪問密碼 45e2
技術愛好者尤爲是大數據愛好者 能夠加DT大數據夢工廠的qq羣java

DT大數據夢工廠① :462923555
DT大數據夢工廠②:437123764
DT大數據夢工廠③ :418110145微信

微信公衆帳號: DT_Sparkoop

本視頻由王家林老師, 親自講解, 徹底經過代碼實戰把您帶人大數據的時代.大數據

package com.parllay.scala.type_parameterizitor

/**
* Created by richard on 15-7-27.
* Scala中類型變量Bounds代碼實現
* 主要介紹類型的上界和下界
*/

/**
* 1) R >: T
這是類型下界的定義,也就是R必須是類型T的父類(或自己,本身也能夠認爲是本身的父類)。

2) T <: Comparable[T]
這是類型上界的定義,也就是 T 必須是類型 Comparable[T]的子類(或自己,本身也能夠認爲是本身的子類)。
* @param first
* @param second
* @tparam T
*/
class Pair[T <: Comparable[T]] (val first: T, val second: T){
def bigger = if(first.compareTo(second) > 0) first else second
}

/**
* 在這裏由於R是T的上界, 就是R是T的父類, 因此T是屬於R的, 因此在實例化的時候是能夠使用R來進行實例化的.
* @param first
* @param second
* @tparam T
*/
class Pair_Lower_Bound[T](val first:T, val second: T){
def replaceFirst[R >: T](newFirst: R) = new Pair_Lower_Bound[R](newFirst, second)
}

object Type_Varialbe_Bound {

def main(args: Array[String]) {

val pair = new Pair("Spark", "Hadoop");
println(pair.bigger)

}

}
相關文章
相關標籤/搜索