【发布时间】:2016-03-28 19:01:27
【问题描述】:
Java 中的数组不扩展 Collection 有什么好的理由吗?
在使用for (Object element : someObject) 迭代之前能够测试someObject instanceof Collection 似乎很有用。相反,据我了解,了解对象是否为数组的唯一方法是在每个数组类型(Object[]、int[]、double[]、...)上使用 instanceof 或使用 @ 987654327@ 但这当然也会强制进行空检查。
【问题讨论】:
-
简短回答:数组早于集合,从长远来看。
-
“为什么语言设计者做出决定 X” 形式的问题实际上是基于意见的。唯一的具体答案可以在语言规范中找到(如果作者解释了他们的选择)或直接询问设计者。在这种情况下,很可能希望以一种并不令人惊讶的方式适应现有概念。
-
空检查有什么问题?或者,更好的是,让
someObject.getClass().isArray()抛出NullPointerException有什么问题?
标签: java arrays collections