Правила именования Enum в Java: константы и классы
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
В Java перечисления, или enum’ы, обычно называются прописными буквами, подобно константам, поскольку они представляют собой неизменяемые значения. Данный стиль именования соответствует спецификации языка Java:
public enum Color {
RED,
GREEN,
BLUE;
}
Если имена перечислений состоят из нескольких слов, следует учитывать читаемость. В этом случае допустимо использование как прописных, так и строчных букв:
public enum HttpStatus {
OK,
NOT_FOUND,
BAD_REQUEST;
}
Рекомендуется избегать добавления слова "Enum" в название перечислений, так как оно не порождает добавочной информативности.
Избегайте путаницы в названиях классов
Временами имена перечислений могут совпадать с названиями классов, что вызывает конфликт имен. В подобных ситуациях полезно различать их по контексту и использованию:
public class NetworkConnection {
...
}
public enum NetworkConnectionType {
WIFI, ETHERNET, LTE;
}
Для разграничения функциональных элементов кода и наборов предопределенных значений необходимо выбирать ясные и уникальные имена.
Найдите баланс между краткостью и ясностью
Ищите баланс между краткостью и информативностью при именовании перечислений:
public enum State {
NEW,
ACTIVE,
INACTIVE,
DELETED;
}
// Вместо
public enum StateOfObject {
STATE_NEW, STATE_ACTIVE, STATE_INACTIVE, STATE_DELETED;
}
State
без излишеств передает необходимую информацию и при этом остается лаконичным.
Визуализация
Перечисления следует организовывать таким образом, чтобы они отражали своё предназначение и были интуитивно понятны в контексте использования:
public class FruitBasket {
public enum Fruit {
APPLE, BANANA, CHERRY;
}
}
FruitBasket.Fruit fruitChoice = FruitBasket.Fruit.APPLE;
Такой порядок упрощает понимание кода и обращение к его элементам.
Согласованность с методами
Имя перечисления может влиять на взаимодействие с методами. Например, метод .name()
возвращает строковое представление значения:
public enum Fruit {
APPLE,
BANANA,
CHERRY;
}
Fruit cherry = Fruit.CHERRY;
System.out.println(cherry.name()); // Выведет "CHERRY"
Выбор правильного регистра для имен перечислений призван обеспечить согласованность и предсказуемость кода.
Полезные материалы
- Соглашения о кодировании для языка программирования Java: 9. Соглашения об именах — Официальное руководство Oracle.
- Google Java Style Guide — Правила именования констант enum от Google.
- java – Соглашения по кодированию – Именование Enum'ов – Stack Overflow — Обсуждение соглашений об именовании перечислений на Stack Overflow.
- Типы Enum (Учебные пособия Java™ > Обучение языку Java > Классы и объекты) — Знакомство с перечислениями в Java по материалам Oracle.
- Соглашения об именовании (программирование) – Википедия — Общие принципы именования в программировании.
- Java Practices->String concatenation does not scale — Практики именования в Java.
- Стиль кода. Java | Документация IntelliJ IDEA — Рекомендации по стилю кода от IntelliJ IDEA.