Должны ли типы перечисления членов Java быть прописными? - PullRequest
10 голосов
/ 16 ноября 2011

Анальный вопрос здесь: у нас есть перечисления Java, которые являются их собственными классами, и перечисления, которые являются членами класса:

public enum reportType { ...

Каждый раз, когда я вижу это, это раздражает меня *, потому что, когда я вижу, что оно использовалов объявлении это тип, а типы должны быть написаны заглавными буквами.Но когда я пытаюсь использовать заглавные буквы, Eclipse предупреждает меня, что я не должен использовать заглавные буквы в названиях полей.Я полагаю, что Eclipse, вероятно, знает официальные соглашения Java лучше, чем я, но это кажется неправильным.Даже пролистал документ по соглашениям Java, но не увидел, что на эту проблему ссылаются.

  • без каламбура

Ответы [ 5 ]

15 голосов
/ 16 ноября 2011

Перечисления являются типом, и имя перечисления должно начинаться с заглавной буквы.Члены enum являются константами, и их текст должен быть в верхнем регистре.

11 голосов
/ 16 ноября 2011

Если это их собственный класс, начинайте с верхнего регистра, если они являются членами нижнего регистра.

4 голосов
/ 16 ноября 2011

Даже пролистал документ по соглашениям Java, но не видел этой проблемы.

Документ соглашения по Java не обновлялся более 10 лет.В основном начиная с Java 1.1.

4 голосов
/ 16 ноября 2011

Вы уверены, что используете настройки по умолчанию?Потому что, как правило, перечисления действительно пишутся с большой буквы.Переменные, содержащие значения перечисления, должны , а не начинаться с заглавной буквы.

public enum State {
  UNINITIALIZED,
  INITIALIZED,
  STARTED,
  ;
}

private State state;

private void start() {
  state = State.UNINITIALIZED;
  ...
}
`.

Вы можете также использовать статический импорт, чтобы избавиться от части State., хотя обычно я думаю, что этолучше оставить это быть.Перечисляемые значения являются константами и должны быть в CAPS.Я видел, как люди меняли поля в константах enum во время выполнения, и это не то, что вам нужно (за исключением ленивого создания экземпляров внутри самого класса время от времени).

2 голосов
/ 16 ноября 2011

В Java имена (не примитивных) типов обычно записываются в PascalCase .Поскольку enum (как class) определяет тип, обычно их записывают также в PascalCase :

enum MyEnumInPascalCase { ... }
...