06.20 Java編程細節-Java泛型總結

泛型

泛型就是參數化類型

  • 適用於多種數據類型執行相同的代碼
  • 泛型中的類型在使用時指定
  • 泛型歸根到底就是“模版”

優點:使用泛型時,在實際使用之前類型就已經確定了,不需要強制類型轉換。

泛型主要使用在集合中

Java編程細節-Java泛型總結

自定義泛型

泛型字母

  • 形式類型參數(formal type parameters)即泛型字母
  • 命名泛型字母可以隨意指定,儘量使用單個的大寫字母(有時候多個泛型類型時會加上數字,比如T1,T2)
  • 常見字母(見名知意)
  • T Type
  • K V Key Value
  • E Element
  • 當類被使用時,會使用具體的實際類型參數(actual type argument)代替

泛型類

  • 只能用在成員變量上,只能使用引用類型

泛型接口

  • 只能用在抽象方法上

泛型方法

  • 返回值前面加上
Java編程細節-Java泛型總結

Java編程細節-Java泛型總結

Java編程細節-Java泛型總結

泛型的繼承

Java編程細節-Java泛型總結

Java編程細節-Java泛型總結

通配符

通配符(Wildcards)

  • T、K、V、E 等泛型字母為有類型,類型參數賦予具體的值
  • ?未知類型 類型參數賦予不確定值,任意類型
  • 只能用在聲明類型、方法參數上,不能用在定義泛型類上
Java編程細節-Java泛型總結

extends/super

上限(extends)

指定的類必須是繼承某個類,或者實現了某個接口(不是implements),即<=

  • ? extends List

下限(super)

即父類或本身

  • ? super List
Java編程細節-Java泛型總結

泛型嵌套

從外向裡取

Java編程細節-Java泛型總結

Java編程細節-Java泛型總結

Java編程細節-Java泛型總結

其他

Java編程細節-Java泛型總結

Java編程細節-Java泛型總結


分享到:


相關文章: