Java утверждает, что порядковый номер начального значения равен 0. Могу ли я предположить, что когда я создаю перечисление, подобное этому :
public enum Direction {MONDAY, TUESDAY, WEDNESDAY, THURSDAY,...}
, что порядковый номер TUESDAY
всегда равен 1, порядковый номер WEDNESDAY
всегда 2,...?
Я буду немного конкретнее. Я объявляю перечисление:
public enum Direction {UP,RIGHT,DOWN,LEFT}
Теперь есть способ повернуться на 90 градусов (по часовой стрелке). Это одна строка с порядковыми номерами:
direction = Direction.values()[direction.ordinal()+1 % Direction.values().length];
Если бы я не использовал порядковые номера, мне пришлось бы использовать операторы switch или условия:
switch (direction) {
case LEFT:newdirection = Direction.UP;
break;
etc...
}
Есть несколько преимуществ использования порядковых номеров:
DOWN_LEFT
)реализация не обязательно должна измениться, если вы поместите новое направление в нужное местоЧто вы думаете?