В Java, Enum представляет собой специальный тип класса, который состоит из фиксированного количества констант. Иногда разработчики сталкиваются с задачей использования значений, хранящихся в Enum, в качестве строковых литералов. Рассмотрим типичный пример:
1 2 3 4 5 | public enum Color { RED, GREEN, BLUE } |
В данном случае, Enum Color
содержит три константы: RED
, GREEN
и BLUE
.
Необходимо каким-то образом использовать эти константы в качестве строковых литералов, то есть, например, при вызове Color.RED
ожидается получить строку "RED"
, не прибегая к вызову Color.RED.toString()
.
В Java есть несколько способов решения этой задачи.
- Использование метода
name()
. Каждое перечисление в Java автоматически получает этот метод, который возвращает имя константы в виде строки. Таким образом,Color.RED.name()
вернет строку"RED"
.
1 2 | Color color = Color.RED; String colorName = color.name(); // "RED" |
- Переопределение метода
toString()
. Если нужно менять строковое представление констант перечисления, можно переопределить методtoString()
в самом Enum.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public enum Color { RED( "красный" ), GREEN( "зеленый" ), BLUE( "синий" ); private final String name; Color(String name) { this .name = name; } @Override public String toString() { return name; } } |
В данном примере для каждой константы задается свое строковое представление, и метод toString()
возвращает это представление. Таким образом, Color.RED.toString()
вернет строку "красный"
.
Важно помнить, что Enum — это не просто набор строковых констант, а полноценный класс, в котором можно определить поля, конструкторы и методы.
Добавить комментарий