【发布时间】:2018-12-28 13:05:43
【问题描述】:
我已经开始阅读有关 scala 泛型的信息。谁能解释一下为什么 whit 代码有效?
sealed abstract class Animal
class Cat extends Animal
class Dog extends Animal
class Box[A >: Animal] {
def set(a: A): A = ???
}
val catBox: Box[Animal] = new Box[Animal]
val dog = new Dog
catBox.set(dog)
【问题讨论】:
-
它实际上工作得很好(除了
???,这与泛型无关......或其他任何东西)。对于未来,在提出问题时,请尝试解释您正在寻求帮助的特定问题,只是“不起作用”太宽泛了。不要指望人们猜测,你的意思是什么。 -
哦,是的,这是我的错。问题是为什么我可以调用方法 set(dog) 如果我通过下限限制类型 A - 动物。因为 Dog 是 Animal 的子类型,而不是超类型
标签: scala generics lower-bound