我想知道爲什麼會是一個問題,如果Java有泛型沒有刪除。我知道這個問題是與舊庫兼容的問題,但是如果把Object放在我們不指定的類型的地方,那就不行了。例如,我們可以使用List list = new ArrayList();
作爲List<Object>
-s集合,List<Integer> list = new ArrayList<Integer>();
將按原樣不刪除。泛型刪除
有人可以舉個例子,如果擦除不起作用會發生什麼。
我想知道爲什麼會是一個問題,如果Java有泛型沒有刪除。我知道這個問題是與舊庫兼容的問題,但是如果把Object放在我們不指定的類型的地方,那就不行了。例如,我們可以使用List list = new ArrayList();
作爲List<Object>
-s集合,List<Integer> list = new ArrayList<Integer>();
將按原樣不刪除。泛型刪除
有人可以舉個例子,如果擦除不起作用會發生什麼。
爲了解Java的泛型和特別的類型擦除,您可以找到的最好的資源之一是Angelika Langer的FAQ關於該主題的內容,請看看它,所有內容都將清晰明瞭。
這不是簡單的向後兼容性問題,而是migration compatibility。正如您正確地指出的那樣,1.5之前的每個列表實際上都是List<Object>
,因此定義List := List<Object>
本可以工作,並且已經向後兼容。但是,將現有庫遷移到1.5並將隱含的List<Object>
轉換爲List<Foo>
會破壞客戶端代碼。輸入原始類型..
我不確定您瞭解什麼類型的刪除是... –
您的問題不清楚。此外,您似乎將原始類型與特定類型混淆。 – helpermethod