-1

私はScalaでこれを行おうとしていますが、何らかの理由で機能しません

abstract class Room {
 ...
}

class RoomA1 extends Room { //"not found: type Room" 
//but they're in the same package!!!
//and if I import it as Eclipse suggests the import declaration will give 
//"Room is not a member of rooms(rooms.type)"
 ...
}

そしてまた...

var room = new Array[Room](2)
room(0) = new RoomA1 //gives a type mismatch 
//how can I accomplish this?
4

2 に答える 2

3

コードに問題はありません。これは、次のことを証明するREPLの出力です。

scala> abstract class Room
defined class Room

scala> class RoomA1 extends Room
defined class RoomA1

scala> val room = new Array[Room](2)
room: Array[Room] = Array(null, null)

scala> room(0) = new RoomA1

scala> room
res3: Array[Room] = Array(RoomA1@71c0ef03, null)

scala>

問題は、それをパッケージにどのように配置したか、どのファイル、どのディレクトリにあるかということにあるはずです。この情報で質問を広げる必要があります。

于 2012-07-08T07:34:05.550 に答える
0

同じ問題を抱えている人のために:Room.scalaはパッケージRoomにあるかもしれませんが、Room.scalaのヘッダーでもそれを宣言することを忘れないでください。Javaでは、厳密なディレクトリ構造を維持する必要があるため、このエラーが発生することはありません。

于 2012-07-08T07:27:51.683 に答える