public ArrayList(Collection<? extends E> c) {
elementData = c.toArray();
size = elementData.length;
if (elementData.getClass() != Object[].class)
elementData = Arrays.copyOf(elementData, size, Object[].class);
}
我不明白“if (elementData.getClass() != Object[].class)”语句以及为什么需要它。这是 ArrayList 构造函数的实现。有人可以解释一下吗?谢谢!
最佳答案
Collection.toArray()
可能会返回一个 Object
数组,或者它可能会返回一些已转换为 Object
的其他数组类型大批。您引用的代码确保其数据数组实际上是一个 Object
数组,因此它能够接收任何 Object
。
关于java - ArrayList 构造器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33443860/