在Java中,为什么类名“Arrays”是复数形式?

6
在Java中,你可以import HashMap;import ArrayList;等。那么为什么import Arrays;是复数形式呢?

5
这个问题似乎不符合主题,因为它涉及JVM作者所做的选择。 - user180100
1
为使其具有唯一性。在JRE中有两个“List”类,这意味着您必须始终明确指出您想要哪一个。 - Thorbjørn Ravn Andersen
3
理解 JVM 作者的选择有何不妥之处?毕竟这些选择会每日影响 Java 开发者的生活。如果你能理解它们,你就可以更好地操作 JCL。 - eckes
1
@eckes 可能没有什么问题,但我不明白SO社区如何解释“选择”。 - user180100
1
@RC 我认为我们甚至在这里有很多OpenJDK和Oracle的贡献者。但是你说得对,答案很可能是更多或更少的猜测。不过这些猜测还是很有趣的。 - eckes
显示剩余2条评论
5个回答

12
处理与Arrays, Files, Paths, ObjectsCollections 相关的实用类都是复数形式。正是因为它们不是数组或集合,而是许多实用程序函数在其上进行操作。甚至可以在Javadoc简介中看到这一点:

此类包含各种操作数组的方法。

这些类中的一些是1.7版中相对较新的添加。所以这就解释了它们的通用命名约定。我不确定是否有书面规定,但这肯定是一个实用的约定。


移除了 StandardCharsets 并加入了 Paths。FilesSystems 更像是 StandardCharsets。 - eckes

4
因为它是一组与数组相关的实用工具。您提到的其他示例实际上是特定类型集合的实例。
例如,Guava中遵循了相同的命名约定,用于Lists、Sets、Maps等。

4

2

HashMap(哈希映射),ArrayList(动态数组)等都是对象。它们是数据结构,提供不同的功能并具有不同的用途。

Arrays (或Collections)则不是一个对象。Arrays是一个类,仅包含静态实用方法,可以对数组执行便捷操作。


2

如何命名类取决于作者和代码转换。


5
不知何故,这是正确的答案XD。 - Fevly Pallar
没错,但想要理解为什么事物被命名为某种方式是很正常的;这有助于开发人员推理他们的工具。假设你的意思是“代码约定”,那么提问者展示了多个例子,说明这与其他类名的约定不符。 - David Kennell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接