Java容器與向下轉型、範型

Java容器與向下轉型、範型

向下轉型:在繼承關係中,導出類向上轉爲基類稱爲向上轉型,這是安全的。相反的過程,基類向下轉爲導出類稱爲向下轉型,這通常是不安全的,除非你知道向下轉型的確切類型,否則會出現異常的運行時錯誤。
容器:用於解決在某個特定問題中不知道需要存儲多少個對象的情況下所發黴的一種新的對象類型,它有對其他對象的引用

那麼問題來了:根據單根繼承結構,所有對象都最終繼承於Object。在Java SE5之前,容器只存儲Object類型,那麼它將對象引用置入容器時,對象發生向上轉型爲Object,會使得對象的身份丟失。當取回時,就獲取了一個隊Object對象的引用,而不是置入時那個確切類型對象的引用?這該怎麼辦?

這就需要用到參數化類型的概念,稱爲範型。Java SE5的重大變化之一就是加入了參數化類型

ArrayList<Shape> shapes = new ArrayList<Shape>();

這樣就創建一個只保存Shape類型的容器,程序員不需要爲向下轉型付出心血。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章