java.util.ArrayList中的泛型
我已经打开了java.util.ArrayList源代码,但我不明白一件事:如果ArrayList被参数化,为什么elementData[]数组的类型是Objectjava.util.ArrayList中的泛型,java,generics,arraylist,Java,Generics,Arraylist,我已经打开了java.util.ArrayList源代码,但我不明白一件事:如果ArrayList被参数化,为什么elementData[]数组的类型是Object public class ArrayList<E> extends ... { ......... private transient Object[] elementData; ......... public boolean add(E e) {/*More code*/} } *有哪些优点和缺点?
public class ArrayList<E> extends ... {
.........
private transient Object[] elementData;
.........
public boolean add(E e) {/*More code*/}
}
*有哪些优点和缺点?每次使用原始类型创建列表时,例如: List
List=newarraylist
()
构造函数将所有数据转换为数组,该数组必须是对象[]数组,位于:
public ArrayList(Collection
这并不能解释为什么它不能是E[]
我把这个解释放在其中一个链接上。我知道你在最后链接到它是“你也可以看一看”。但除此之外,这些都与问题无关,即为什么不E[]
private transient E[] elementData
list.add(new String("VALUE"));
list.add(new Integer("1"));
for (Object c : list) {
System.out.println(c.toString());
}