オブジェクトの配列を指す列挙型を定義するとします。これはできますか?以下のコードでは、コメントアウトされた部分は単一のオブジェクトを指し示す列挙型を定義し、正常に動作しますが、オブジェクトの配列を初期化しようとするコメントのないコードはエラーの束を引き起こします。関連ノートで列挙型のリストを初期化する
public enum SightSensor{
/*NORTH (new MapLocation(0,1)),
SOUTH (new MapLocation(0,-1));
private final MapLocation loc;
SightSensor(MapLocation loc){
this.loc = loc;
}
public MapLocation getLoc(){
return loc;
}*/
NORTH ({new MapLocation(0,1), new MapLocation(0,2)}),
SOUTH ({new MapLocation(0,-1), new MapLocation(0,-2)});
private final MapLocation[] locs;
SightSensor(MapLocation[] locs){
this.locs = locs;
}
public MapLocation[] getLocs(){
return locs;
}
}
、私は2つの列挙型の間の固定マッピングを定義したいとしますそうするための最良の方法は何ですか?地図?ハッシュ?正確には、上記のコードと同様に、NORTHが異なるenum値の場合、[NORTH]が目的のMapLocationsのリストを返すオブジェクトAを定義したかったとします。
列挙するために最適化されたマップがある:[EnumMap(http://docs.oracle.com/javase/6/docs/api/java/util/EnumMap.html) – Kapep