2013-10-13 5 views
0

클래스를 스칼라로 정의한 후에는 내가 만드는 객체가 다른 유형 인 것처럼 보입니다. 개체의 ListBuffer를 만들려고합니다. 스칼라 명령 행에서 시험해보기. 누군가 이것을 설명 할 수 있습니까?스칼라 : 같은 클래스의 오브젝트에 다른 유형이 있습니까?

아래 예제에서는 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입니다.

관련 문제