在这个简单的例子中,我创建了一个基于泛型类型的容器类:
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() = {
^
感谢理解此错误的任何帮助。
答案 0 :(得分:0)
这不是scala的问题。问题在于使用scalafiddle
http://scalafiddle.net/console/e25f42d74afdf8c6ca6a3b7ece3af051
这在该上下文之外编译并正常运行。