Есть ли «официальная» рекомендация о том, как назвать перечисления Java?
enum Protocol { HTTP, HTTPS, FTP }
или
enum Protocols { HTTP, HTTPS, FTP }
Я знаю, что в мире .Net рекомендуется использовать единственное число, за исключением перечислений, которые представляют битовые флаги. Просто любопытно, есть ли что-то подобное в Java.
Смежный вопрос, который кажется специфичным для .Net: единственное или множественное число для перечислений?
java
enums
naming-conventions
friederbluemle
источник
источник
Ответы:
Перечисления в Java (и, возможно, перечисления в целом) должны быть единичными. Смысл в том, что вы выбираете не несколько протоколов, а один протокол из возможных вариантов в списке значений.
Обратите внимание на отсутствие множественного числа: http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
источник
DAYS
,HOURS
...Точно так же, когда вы определяете имя таблицы в базе данных или класс в Java, вы используете единственное число для перечислений, это также лучший вариант. Просто посмотрите, как вы собираетесь его использовать.
Давайте напишем пример:
В единственном числе вы ясно видите намерение атрибута дня. «день» - день недели, когда назначено это назначение. В противном случае подпись метода была бы setDay (дни дня), и наверняка многие люди будут интересоваться, может ли встреча произойти более чем за один день.
Если вы работаете в компании с 48-часовыми сменами, вы можете попытаться определить что-то вроде:
Таким образом, вы можете установить дни, когда вы собираетесь работать. Но, тем не менее, это будет выглядеть странно, и есть лучший вариант - использовать единственную форму:
Теперь вы действительно показываете значение перечисления. Обычно в любой области вы обнаружите, что использование единственного числа для перечисления является наилучшим вариантом, поскольку каждая константа в перечислении - это всего лишь один элемент.
Вы также упоминаете .NET. Перечисление «flags» в .NET просто означает, что когда вы ожидаете, что enum в качестве параметра, то вы действительно получите список элементов этого перечисления (сохраненный как целое число).
Вы можете сделать то же самое в Java, но перечисление все равно будет единичным:
Проще и понятнее (хотя он использует больше памяти) сделать это с помощью Java - просто использовать List.
источник