我打开了 java.util.ArrayList 源代码,但我无法理解一件事:如果 ArrayList 参数化,为什么 elementData[] 数组是 Object 类型?
public class ArrayList<E> extends ... {
.........
private transient Object[] elementData;
.........
public boolean add(E e) {/*More code*/}
}
问题:为什么不将 elementData 定义为:
private transient E[] elementData
*有什么优点和缺点?