TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #1514 1.94K
Java Enums — Всё, что нужно знать

1. enum Status { PENDING, APPROVED, REJECTED } → Базовый Enum

• Это называется enum (сокращение от enumeration).
• Используется для задания фиксированного набора констант (например, состояния заказа, роли пользователя).

2. Status.valueOf("APPROVED") → Преобразование строки в Enum

• Бросает исключение, если строка некорректна.
• Используется при маппинге из БД, пользовательского ввода или JSON (например, парсинг статуса из запроса).

3. Status.APPROVED.name() → Получить имя как строку

• Возвращает имя enum-константы в точности как оно определено.
• Используется при логировании, сериализации и т. д. (например, отображение enum как строки в ответе).

4. Status.APPROVED.ordinal() → Получить индекс Enum

• Возвращает позицию (начиная с 0).
• Используется только если порядок важен (обычно избегается ради стабильности) — например, для ранжирования уровней.

5. for (Status s : Status.values()) → Перебор значений Enum

• Используется для итерации по всем константам.
• Удобно для UI-дропдаунов, фильтров, пакетной обработки.

6. enum Day { MON, TUE; boolean isWeekend() { return false; } } → Enum с методами

• Добавляет поведение к enum.
• Используется, если для каждой константы нужна логика (например, isHoliday() для Day).

7. enum Type { BASIC("B"), PREMIUM("P"); private String code; ... } → Enum с полями

• Используется для хранения дополнительных данных с каждой константой (например, код из БД, описание).

8. Enum с абстрактным методом

enum Mode {
ON { void act() { /* что-то делаем */ } },
OFF { void act() { /* ничего не делаем */ } };
abstract void act();
}


• Называется поведенческим enum'ом.
• Используется для логики, подобной конечному автомату (например, стратегии на константу).

9. EnumSet.of(Status.APPROVED) → EnumSet

• Высокопроизводительное множество для enum.
• Используйте вместо HashSet<Enum> (например, для фильтрации флагов или ролей).

10. EnumMap<Status, String> → EnumMap

• Эффективная key-value структура, использующая enum в качестве ключа.
• Быстрее и легче, чем HashMap<Enum, X> (например, для меток или конфигураций по статусу).

11. switch(status) → Enum в операторе switch

• Работает с enum'ами нативно.
• Используется для route-логики (например, обработки каждого статуса по-своему).

👉 Java Portal
  • ❤ 6
  • 👍 5
More from @java_iibrary
  1. Oct 2, 2026Процесс ≠ Поток ≠ Виртуальный поток. Эти понятия часто путают, хотя они решают разные зада…
  2. Oct 1, 2026Когда Java-стектрейс оказался длиннее контекста ИИ 👀 👉 Java Portal
  3. Oct 1, 2026Spring Boot 4: приближение срока истечения SSL-сертификатов больше не меняет статус health…
  4. Sep 30, 2026Почему один и тот же Java-файл .class запускается на Windows, Linux и macOS без перекомпил…
  5. Sep 30, 2026Docker прост, пока всё работает. Но что делать, если контейнер постоянно перезапускается,…
  6. Sep 29, 2026Эволюция языков программирования 1940-е → Машинный код ⬇️ 1950-е → Ассемблер ⬇️ 1960-е → F…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →