目录
- 概述
- 实践
- 代码
- 执行
- 结束
概述
scala 中的视图界定
实践
代码
/**
* 视图界定
*/
object Genericity03 {
def main(args: Array[String]): Unit = {
println(new MaxInt(1,2).compare)
println(new MaxLong(1L,2L).compare)
// 不行
// println(new MaxValue(1,2).compare)
// 行,隐式转换
println(new MaxValue[Integer](1,2).compare)
println(new MaxValue2(1,2).compare)
}
// <% 视图界定 int2Integer
class MaxValue2[T <% Comparable[T]] (a:T,b:T){
def compare = if (a.compareTo(b)>0) a else b
}
class MaxValue[T <: Comparable[T]] (a:T,b:T){
def compare = if (a.compareTo(b)>0) a else b
}
class MaxInt(a: Int, b: Int) {
def compare = if (a > b) a else b
}
class MaxLong(a: Long, b: Long) {
def compare = if (a > b) a else b
}
}
执行
结束
scala视图界定
至此结束。