Могу ли я предположить, что перечисления Java автоматически-увеличиваются на 1?

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)реализация не обязательно должна измениться, если вы поместите новое направление в нужное место

Что вы думаете?

7
задан TacticalCoder 8 March 2012 в 18:51
поделиться