泛型
泛型的概述
1. JDK1.5新特性。
2. 泛型可以使用在方法上,類上,接口上。
3. 泛型變量可以理解爲是某種數據類型的佔位符。
4. 泛型變量還可以理解爲是某種數據類型的變量。
5. 泛型變量的命名規則:只要是合法的標識符就可以,一般使用一個大寫字母表示
常用的泛型變量名有:T type E element K key V value
1 泛型方法的概念
在定義方法時定義了泛型變量的方法就是泛型方法
泛型方法的定義格式
修飾符 <T> 返回值類型 方法名(參數列表) { }
泛型方法的注意事項
1. 調用方法時,確定泛型的類型,如果沒有指定,則默認是Object
2. 泛型變量的具體數據類型是由調用者調用方法時傳參決定。
3. 泛型變量的具體數據類型不能是基本數據類型,如果要使用基本數據類型則需要使用對應的包裝類類型
2 泛型類的概念
在定義類的同時定義了泛型變量的類。
泛型類的定義格式
class 類名<T>{
// 在該類中可以將泛型變量T當成一種數據類型使用。
}
泛型類的注意事項
1. 泛型類泛型變量的具體數據類型是在創建該類對象時由創建者指定。
2. 如果創建泛型類對象時沒有指定泛型變量的具體數據類型,則默認是Object
3. 靜態方法不能使用類上定義的泛型變量,如果該方法中要使用泛型變量,則需要將該定義爲泛型方法。
3 泛型接口的概念
在定義接口的同時定義了泛型變量的接口
泛型接口的定義格式
interface 接口名<T>{
// 可以將泛型變量T當成一種數據類型使用
}
泛型接口的實現方式
方式1:實現接口的同時指定泛型變量的具體數據類型。(不夠靈活)
方式2:實現接口的時不指定泛型變量的具體數據類型,那麼此時需要將該實現類定義爲泛型類,由使用者創建實現類對象時指定泛型變量的數據類型。(推薦使用)
4 泛型上下限
泛型上下限格式
泛型的上限:
格式: <? extends 類 >
意義: 只能接收該類型及其子類
泛型的下限:
格式: <? super 類 >
意義: 只能接收該類型及其父類型
注意事項? :
1.泛型通配符,可以匹配任意類型的數據。
2.? 一般不會單獨使用,一般會結合泛型的上下限使用。
3.? 不能用來定義泛型方法,泛型類,泛型接口
4.? 不能在方法體中當成一種數據類型使用