1. 程式人生 > >泛型程式設計(一)

泛型程式設計(一)

Java中增加泛型之前,泛型是使用繼承實現的(通用的Object)

這樣,get一個值的時候要進行強制型別轉換

add的時候沒有錯誤檢查,可以新增任何類的物件,不安全

加入型別引數以後,get直接拿到型別,不需要進行強制型別轉換

add的時候直接檢測,插入型別錯誤直接報錯,更加安全,可讀性好

AirayList 類有一個方法 addAll 用來新增另一個集合的全部元素。 程式設計師可能想要將 ArrayList<Manager> 中的所有元素新增到 ArrayList<Employee> 中去。然而, 反過來就不行了。如何只能允許前一個呼叫,而不能允許後一個呼叫呢? Java語言的設計者發明了一個具 有獨創性的新概念, 萬用字元型別 (wildcard type), 它解決了這個問題。 

一個簡單的泛型類的例子:

指定泛型類中的多個型別變數:

變數型別大寫規範:

在 Java 庫中, 使用變數 E 表 示集合的元素型別, K 和 V 分別表示表的關鍵字與值的型別。T ( 需要時還可以用臨近的 字 母 U 和 S ) 表 示“ 任 意 類 型 ”。 

 

可以在普通類中定義一個泛型方法:

如何呼叫以及型別推導:

可能出現的問題,尋找超類:

救措施是將所有的引數寫為double值

 

型別變數的限定:

也可以有多個限定:

 

型別擦除...