1

我正在阅读“深入Scala”一书,发现了一些我无法理解的观点。

首先,让我们看一下书中关于“下界”和“上限”的例子:

type B <: Traversable[Int]  // Upper bound definition
type B >: List[Int] // Define lower bound restriction

我能理解他们。

但我在第 135 页看到这句话:

指定下限约束还允许您利用在下限上定义的成员。上限约束并不意味着类型上可能包含哪些成员,但在组合多个参数化类型时很有用。

我在想是不是错了?它应该是:

指定上限约束还允许您利用在上限上定义的成员。下限约束并不意味着某个类型上可能有哪些成员,但在组合多个参数化类型时很有用。

不应该吗?

在我看来,

class Hello[T] {
   def test1[U >: T](x: U): U = x
   def test2[U <: T](x: U): T = x   
}

test1lower boundtest2upper bound,对吧?

4

0 回答 0