Что подразумевается под именем класса, являющимся множественным числом в Java, например, «Коллекции»?

#java #naming-conventions

#java #соглашения об именовании

Вопрос:

Я сталкивался с тем, что некоторые имена классов являются множественными в Java, такими как Collections (не путать с Collection ), и пакет java.util перечисляет несколько других только в этом пакете, таких как Arrays и Objects .

В общем, что подразумевается под именем класса, являющимся множественным числом? Всегда ли это означает, что это набор служебных статических методов, например, с Collections ?

Комментарии:

1. Одним исключением, я полагаю, является Properties класс.

Ответ №1:

В Java есть несколько классов, которые являются множественными, несмотря на то, что они не являются утилитами. К ним относятся DoubleSummaryStatistics и IntSummaryStatistics.java . Я думаю, что основное значение заключается в том, «Улучшает ли множественное число этого класса понимание класса или делает его более читаемым?» DoubleSummaryStatistic , вероятно, не будет репрезентативным для самого класса. Большинство классов во множественном числе являются утилитами или константами. Другие, иногда являются расширениями HashMap для свойств или атрибутов. Из java.util следующие классы являются множественными:

 LongSummaryStatistics.java - public class 
Attributes.java - public class
IntSummaryStatistics.java - public class
Properties.java - public class 
DoubleSummaryStatistics.java - public class

Executors.java - Utility
Helpers.java - Utility
ArrayPrefixHelpers.java - Utility
Spliterators.java - Utility
ZipUtils.java - Utility
Comparators.java - Utility
ArraysParallelSortHelpers.java - Utility
Collections.java - Utility
Collectors.java - Utility
Streams.java - Utility
SortedOps.java - Utility
FindOps.java - Utility
ReduceOps.java - Utility
WhileOps.java - Utility
DistinctOps.java - Utility
StreamSpliterators.java - Utility
ForEachOps.java - Utility
Nodes.java - Utility
SliceOps.java - Utility
MatchOps.java - Utility
Objects.java - Utility
Arrays.java - Utility

FormattableFlags.java - Constants
CharPredicates.java - Constants 
ZipConstants.java - Constants