/**
* 类型变量界定Bounds(上界、下界)
* "<:"上界类型限定符,意思是限定T是Comparable[T]的子类
* Comarable表示可对比的,否则first是没有compareTo方法的
* @param first
* @param second
* @tparam T
*/
//class Pair[T](val first: T, val second: T)
class Pair[T <: Comparable[T]](val first: T, val second: T) {
def bigger = if(first.compareTo(second) > 0) first else second
}
/**
* ">:" T是R的下界
* @param first
* @param second
* @tparam T
*/
class Pair_Lower_Buond[T](val first: T, val second: T) {
def replaceFirst[R >: T](newFirst: R) = new Pair_Lower_Buond[R](newFirst, second)
}
object Typy_Variables_Bounds {
def main(args: Array[String]): Unit = {
val pair = new Pair("Spark", "Hadoop")
println(pair.bigger)
}
}
scala进阶2-类型变量界定Bounds
最新推荐文章于 2020-07-29 18:56:28 发布