我們來看看Set<E>
的一些方法聲明。編譯時檢查通用類型
public boolean add(E e);
public E get(int index);
然後我們試着使用它。即使在這個代碼的非泛型等價物中(正如我所知,它會簡單地轉換成它),我們在兩行中都會遇到編譯錯誤。
List s = new ArrayList();
s.contains((Boolean)(new Integer(3)));
Integer i = (Boolean)s.get(3);
那麼,爲什麼我不能在通用情況下得到錯誤?