scala - 不能通过参数化类型存在抽象

时间:2016-04-02 11:59:18

标签: scala

在这个简单的例子中,我创建了一个基于泛型类型的容器类:

class  Student[T](val favoriteThing:T, var partner:Option[Student[T]]=None )

第一个字段favoriteThing是泛型类型T,第二个字段是指向该类的另一个实例的指针,但是在Option类型中,它具有默认值None

我可以实例化这个类并检查第一个字段

val s1 = new Student(42)
s1.favoriteThing

但访问partner字段时会出现此运行时错误。

s1.partner
Compiler exception error: line 0: can't existentially abstract over parameterized type Student[Int]
  def apply() = {
            ^

感谢理解此错误的任何帮助。

1 个答案:

答案 0 :(得分:0)

这不是scala的问题。问题在于使用scalafiddle

http://scalafiddle.net/console/e25f42d74afdf8c6ca6a3b7ece3af051

这在该上下文之外编译并正常运行。