私は2つの配列を持っています:WallsとNeighbors。Javaで配列にインデックスを付けるにはEnumの順序値を使用することは悪い習慣ですか?
public boolean[] walls = new boolean[4];
public Cell[] neighbors = new Cell[4];
と私は列挙型があります。今
enum Dir
{
North,
South,
East,
West
}
は、私は彼らの方向で壁や隣人にアクセスできるようにしたいので、私は魔法の束の周りに渡す必要はありません。インデックス。
しかし、私がEnum.ordinal()のドキュメントを読んでいたとき、プログラマーはこの方法ではほとんど役に立たないと言いました。でも
List<Dir> availableDirections = new ArrayList<Dir>();
for(Dir direction : Dir.values())
if (!Neighbors[direction.ordinal()].Visited)
availableDirections.add(direction);
か:私はに設定されたインデックス値をWEST、NORTH、SOUTH、EAST用の静的定数を使用してに戻すべき
return Neighbors[Dir.North.ordinal()];
私のような何かを考えていた
それらを使用するか、Enumの順序付けメソッドを使用しますか?
''壁 'の' EnumSet'です。おそらくそれを同期する必要はありません。 –