Предположим, я хочу определить перечисление, указывающее на массив объектов. Можно ли это сделать? В приведенном ниже коде закомментированная часть определяет перечисление, указывающее на отдельные объекты, и работает нормально, но незакомментированный код, который пытается инициализировать массивы объектов, вызывает кучу ошибок.
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;
}
}
В связанной заметке предположим, что я хотел определить фиксированное отображение между двумя перечислениями: каков наилучший способ сделать это? Карта? Hash? Чтобы быть точным, предположим, аналогично приведенному выше коду, я хотел определить объект A, что, если NORTH - это другое значение перечисления A [NORTH], вернет требуемый список MapLocations.