1
A
回答
3
這裏有沒有類型擦除這是不可能的例子:在當前JRE和List
喜歡的用途
public static void main(String[] args) {
List<String> newList = legacyMethod();
for (String s : newList) {
System.out.println(s);
}
}
public static List legacyMethod() {
List oldList = new ArrayList();
oldList.add("a");
oldList.add("b");
oldList.add("c");
return oldList;
}
3
有與舊代碼的兼容性意味着它應該能夠不用編譯JVM上的新版本上運行。假設您有一些沒有源代碼的遺留庫。這確保您可以在Java 5上運行它。您的新代碼將能夠毫無問題地調用遺留代碼。
1
運行舊代碼將使用新老代碼。方法吸如Collections.sort
將是新回調的舊代碼。
0
採取哪些還沒有被移植到Java 5的任何舊的Java庫,但。您會發現很多舊代碼返回或接受的地方List
。如果不刪除,你不能使用泛型的代碼(讓你的生活更簡單),並通過您的列表作爲參數傳遞給框架無(淺)複製了整個事情 - List
和List<String>
會爲String
和File
不同。
以類似的方式,當庫返回一個列表,你要麼必須使用預5語法與迭代器來處理它或複製的基本清單到泛型一個。
有辦法解決這個問題。 Sun可能已經使List
等於List<Object>
或者上帝保佑List<?>
。但那會引入更加微妙的問題。所以他們決定採取阻力最小的方式,並在編譯過程中使用通用信息(主要是)。
相關問題
- 1. 泛型,擦除和字節代碼
- 2. Java泛型和考慮下面的代碼類型擦除
- 3. Java泛型類型擦除
- 4. MSXML2和.net - 遺留代碼
- 5. 泛型在Java中 - 與遺留代碼的互操作
- 6. 什麼好處泛型提供了遺留代碼:
- 7. Java泛型類型擦除字節代碼
- 8. Fortran遺留代碼
- 9. 刪除遺留代碼分支
- 10. 對於大型遺留代碼庫MSTest
- 11. 爪哇 - 泛型類型 - 類型擦除
- 12. Java類型擦除擦除我的泛型?
- 13. 將java遺留代碼轉換爲泛型 - 如何用類型替換Object?
- 14. 泛型類型擦除ClassCastException異常
- 15. Java泛型類型擦除鑄造
- 16. JpaRepository的泛型沒有類型擦除?
- 17. RequireJS和頁面代碼中的遺留
- 18. 測試遺留代碼
- 19. PowerMockito測試遺留代碼
- 20. Typescript泛型是否使用類型擦除來實現泛型?
- 21. 泛型方法有限制類型參數和類型擦除
- 22. 泛型問題 - 無法編譯代碼,可能是因爲類型擦除
- 23. 將泛型引入遺留代碼並遍歷參數化實例
- 24. 密碼驗證遺留代碼
- 25. 泛型中的非遺留代碼給出了不應該是的編譯器警告。請清除它
- 26. 泛型代碼刪除不工作
- 27. Rcpp升級遺留代碼問題
- 28. 瞭解遺留的grails代碼?
- 29. 構建遺留Turbo C++代碼
- 30. 遺留代碼visual basic to c#
這不是一個很好的例子,在舊的和新的方法相同。 – 2009-07-23 11:41:13