Правила именования Enum в Java: константы и классы

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

В Java перечисления, или enum’ы, обычно называются прописными буквами, подобно константам, поскольку они представляют собой неизменяемые значения. Данный стиль именования соответствует спецификации языка Java:

Java
Скопировать код
public enum Color {
    RED,
    GREEN,
    BLUE;
}

Если имена перечислений состоят из нескольких слов, следует учитывать читаемость. В этом случае допустимо использование как прописных, так и строчных букв:

Java
Скопировать код
public enum HttpStatus {
    OK,
    NOT_FOUND,
    BAD_REQUEST;
}

Рекомендуется избегать добавления слова "Enum" в название перечислений, так как оно не порождает добавочной информативности.

Кинга Идем в IT: пошаговый план для смены профессии

Избегайте путаницы в названиях классов

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

Java
Скопировать код
public class NetworkConnection {
    ...
}

public enum NetworkConnectionType {
    WIFI, ETHERNET, LTE;
}

Для разграничения функциональных элементов кода и наборов предопределенных значений необходимо выбирать ясные и уникальные имена.

Найдите баланс между краткостью и ясностью

Ищите баланс между краткостью и информативностью при именовании перечислений:

Java
Скопировать код
public enum State {
    NEW,
    ACTIVE,
    INACTIVE,
    DELETED;
}

// Вместо
public enum StateOfObject {
    STATE_NEW, STATE_ACTIVE, STATE_INACTIVE, STATE_DELETED;
}

State без излишеств передает необходимую информацию и при этом остается лаконичным.

Визуализация

Перечисления следует организовывать таким образом, чтобы они отражали своё предназначение и были интуитивно понятны в контексте использования:

Java
Скопировать код
public class FruitBasket {
    public enum Fruit {
        APPLE, BANANA, CHERRY;
    }
}

FruitBasket.Fruit fruitChoice = FruitBasket.Fruit.APPLE;

Такой порядок упрощает понимание кода и обращение к его элементам.

Согласованность с методами

Имя перечисления может влиять на взаимодействие с методами. Например, метод .name() возвращает строковое представление значения:

Java
Скопировать код
public enum Fruit {
    APPLE,
    BANANA,
    CHERRY;
}

Fruit cherry = Fruit.CHERRY;
System.out.println(cherry.name()); // Выведет "CHERRY"

Выбор правильного регистра для имен перечислений призван обеспечить согласованность и предсказуемость кода.

Полезные материалы

  1. Соглашения о кодировании для языка программирования Java: 9. Соглашения об именах — Официальное руководство Oracle.
  2. Google Java Style Guide — Правила именования констант enum от Google.
  3. java – Соглашения по кодированию – Именование Enum'ов – Stack Overflow — Обсуждение соглашений об именовании перечислений на Stack Overflow.
  4. Типы Enum (Учебные пособия Java™ > Обучение языку Java > Классы и объекты) — Знакомство с перечислениями в Java по материалам Oracle.
  5. Соглашения об именовании (программирование) – Википедия — Общие принципы именования в программировании.
  6. Java Practices->String concatenation does not scale — Практики именования в Java.
  7. Стиль кода. Java | Документация IntelliJ IDEA — Рекомендации по стилю кода от IntelliJ IDEA.
Свежие материалы