3
我已經打開java.util.ArrayList源代碼,並且我不明白一件事:爲什麼如果ArrayList被參數化,爲什麼elementData []數組的類型爲Object?java.util.ArrayList中的泛型
public class ArrayList<E> extends ... {
.........
private transient Object[] elementData;
.........
public boolean add(E e) {/*More code*/}
}
問題:爲什麼不定義爲從elementData:
private transient E[] elementData
*有什麼優勢和劣勢?您創建與原始類型的列表,像
這並不能解釋爲什麼它不能是'E []' – newacct
我把這個解釋放在其中一個鏈接上。 http://stackoverflow.com/questions/13776576/why-arraylist-implementation-uses-object –
我知道你最後鏈接到「你也可以看看」。但是,否則這與這個問題沒有關係,爲什麼不是'E []' – newacct