首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 集合庫與便利使用:Object 通用類型、向上/向下轉型、參數化類型缺失、模板/泛型展望

     編輯:Java 相關知識

集合庫必要性

  • 集合為常用工具,需可重用庫
  • Java 提供此庫(1.0/1.1 有限,1.2 集合框架為傑作)

通用類型 Object 與向上轉型

  • 單根結構 → 一切皆 Object
  • 容納 Object 的集合 = 可容納任何東西
  • 加入時:向上轉型 為 Object,失去具體類型資訊

取出時的向下轉型問題

  • 取出得 Object 參考,非原類型
  • 需向下轉型 回具體類型
  • 風險:轉型錯誤 → 執行期 ClassCastException
  • 程式設計師須自行記住實際類型

代價

  • 向下轉型 + 執行期檢查 → 額外時間
  • 程式設計師額外精力記錄類型

理想方案:參數化類型 (泛型)

  • 編譯器自動定製集合,僅接受/產出特定類型
  • 例:Collection 只接受 Shape、只取出 Shape
  • 消除向下轉型必要與潛在錯誤

歷史與現狀

  • C++:template 關鍵字實現參數化類型(因無單根結構)
  • Java 早期:無參數化類型(單根結構下顯笨拙)
  • generic 關鍵字保留未來實現(Ada 語言用 generic 實現模板)
  • Java 5 (1.5) 正式引入泛型
  • 關鍵字保留機制常讓人難以預測未來
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved