泛型程式設計(一)
阿新 • • 發佈:2018-12-24
Java中增加泛型之前,泛型是使用繼承實現的(通用的Object)
這樣,get一個值的時候要進行強制型別轉換
add的時候沒有錯誤檢查,可以新增任何類的物件,不安全
加入型別引數以後,get直接拿到型別,不需要進行強制型別轉換
add的時候直接檢測,插入型別錯誤直接報錯,更加安全,可讀性好
AirayList 類有一個方法 addAll 用來新增另一個集合的全部元素。 程式設計師可能想要將 ArrayList<Manager> 中的所有元素新增到 ArrayList<Employee> 中去。然而, 反過來就不行了。如何只能允許前一個呼叫,而不能允許後一個呼叫呢? Java語言的設計者發明了一個具 有獨創性的新概念, 萬用字元型別 (wildcard type), 它解決了這個問題。
一個簡單的泛型類的例子:
指定泛型類中的多個型別變數:
變數型別大寫規範:
在 Java 庫中, 使用變數 E 表 示集合的元素型別, K 和 V 分別表示表的關鍵字與值的型別。T ( 需要時還可以用臨近的 字 母 U 和 S ) 表 示“ 任 意 類 型 ”。
可以在普通類中定義一個泛型方法:
如何呼叫以及型別推導:
可能出現的問題,尋找超類:
救措施是將所有的引數寫為double值
型別變數的限定:
也可以有多個限定:
型別擦除...