0
在scala中定义了一个类后,我创建的对象似乎是不同的类型。 尝试创建对象的ListBuffer。试用scala命令行。有人可以解释这个吗?Scala:对象有相同的类有不同的类型?
在下面的示例中,我创建了一个class z
。试图将它们添加到ListBuffer
scala> class z()
defined class z
scala> var p = new z()
p: this.z = [email protected]
scala> var q = new z()
q: this.z = [email protected]
scala> var LB = ListBuffer[z](p,q)
<console>:19: error: type mismatch;
found : this.z
required: this.z
var LB = ListBuffer[z](p,q)
^
<console>:19: error: type mismatch;
found : this.z
required: this.z
var LB = ListBuffer[z](p,q)
^
你在REPL中试过吗?如果在定义p和q之后重新执行第一行(重新定义类z),则可能会产生您所看到的那种错误。在干净的运行中,我没有遇到问题。 – Shadowlands
我正在火花外壳中运行。这有什么区别吗。它运行Scala2.9.3 – Vijay
我猜测它没有,但我无法肯定地说。尝试重新设置并重新运行代码,确保不要重复任何行 - 假设您可以执行重置(在sbt的控制台中键入':reset')。 – Shadowlands