Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
03 Июл 2024
2 мин
195

Использование значений Enum как строковых литералов

В Java, Enum представляет собой специальный тип класса, который состоит из фиксированного количества констант. Иногда разработчики сталкиваются с задачей

В Java, Enum представляет собой специальный тип класса, который состоит из фиксированного количества констант. Иногда разработчики сталкиваются с задачей использования значений, хранящихся в Enum, в качестве строковых литералов. Рассмотрим типичный пример:

public enum Color {
    RED,
    GREEN,
    BLUE
}

В данном случае, Enum Color содержит три константы: RED, GREEN и BLUE.

Необходимо каким-то образом использовать эти константы в качестве строковых литералов, то есть, например, при вызове Color.RED ожидается получить строку "RED", не прибегая к вызову Color.RED.toString().

В Java есть несколько способов решения этой задачи.

  1. Использование метода name(). Каждое перечисление в Java автоматически получает этот метод, который возвращает имя константы в виде строки. Таким образом, Color.RED.name() вернет строку "RED".
Color color = Color.RED;
String colorName = color.name(); // "RED"
  1. Переопределение метода toString(). Если нужно менять строковое представление констант перечисления, можно переопределить метод toString() в самом Enum.
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 — это не просто набор строковых констант, а полноценный класс, в котором можно определить поля, конструкторы и методы.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий