我碰到下面的代碼,添加元素的一個簡單的例子來List
ArrayList <Integer>允許添加String嗎?
List list = new ArrayList<Integer>();
ListIterator<Integer> litr = null;
list.add("A");
list.add("1");
list.add(5);
litr = list.listIterator();
while(litr.hasNext()){
System.out.println("UIterating " + litr.next());
}
我希望它拋出一個ClassCastException
,而是寫了這個控制檯
A
1
5
看起來怪異。當我嘗試:
List<Integer> list = new ArrayList<Integer>();
我有一個編譯時錯誤。
我將不勝感激,如果有人可以解釋String
對象是如何加入到ArrayList
http://stackoverflow.com/questions/339699/java-generics-type-erasure-when-and-what-happens – CupawnTae
http://stackoverflow.com/questions/2770321/what-is-a-raw -type-and-why-shouldnt-we-use-it – Reimeus
我可以用一句話總結:「在Java中,泛型只能在編譯時完成。」話雖如此,Java會因此引發關於使用原始類型的警告。 – Powerlord