【发布时间】:2013-10-13 14:01:28
【问题描述】:
下面的代码。
我的期望是T 必须是B 或A 类型,所以调用lowerBound(new D) 可能不应该编译(?)。与上限类似的实验给了我预期的类型检查错误。
感谢您的提示。
object varianceCheck {
class A {
override def toString = this.getClass.getCanonicalName
}
class B extends A
class C extends B
class D extends C
def lowerBound[T >: B](param: T) = { param }
println(lowerBound(new D)) //> varianceCheck.D
}
【问题讨论】:
标签: scala generics type-bounds