2013-10-13 89 views
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) 
           ^
+4

你在REPL中试过吗?如果在定义p和q之后重新执行第一行(重新定义类z),则可能会产生您所看到的那种错误。在干净的运行中,我没有遇到问题。 – Shadowlands

+0

我正在火花外壳中运行。这有什么区别吗。它运行Scala2.9.3 – Vijay

+0

我猜测它没有,但我无法肯定地说。尝试重新设置并重新运行代码,确保不要重复任何行 - 假设您可以执行重置(在sbt的控制台中键入':reset')。 – Shadowlands

回答

0

这是当前星火壳牌实现产物的对象时,p和q似乎冲突(例如您的正常工作中经常斯卡拉2.9.3外壳);有a post on the spark-users邮件列表可以更详细地解释问题并列出一些解决方法。

相关问题