泛型
Java 泛型(generics)是 JDK 5 中引入的一個新特性, 泛型提供了編譯時類型安全檢測機制,該機制允許程序員在編譯時檢測到非法的類型。保證了java的安全性
泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數。
泛型的定義:泛型是一種把類型明確的工作推出到創建對象或調用方法的時候,才去明確特殊類型,參數化類型,把類型當作參數一樣進行傳遞
1、格式:
<數據類型>// 數據類型只能是引用類型
2、好處:
- 把運行時報的錯誤提前到編譯時期
- 避免了強制轉換
- 優化程序的設計,解決黃色警告線
3、泛型的引用:
-
類上定義泛型
class ObjectTool<T>{ // 定義泛型時用<>,一般里寫Tprivate T t; // 使用泛型時不加<>,直接寫里面的參數public void setT(T t){this.t = t;}public T getT(){return t;} } public class Demo{public static void main(String[] args){// 在創建objecttool對象時明確數據類型為stringObjectTool<String> tool = new ObjectTool<String>();// ObjectTool<String> tool = new ObjectTool<>(); tool.setT("123");System.out.println(tool.getT());} }// 輸出:123
-
在方法上定義泛型
在方法上定義泛型相當于:可以傳遞任意類型的參數,在調用方法時明確該數據類型
public <T> void show(T t){// 泛型定義一般寫在修飾符后面,返回值類型前面System.out.println(t); }
-
在接口上定義泛型
-
方法1:
public interface Say<T> {//聲明了一個帶有泛型類型的方法T printT(T t); }
-
### 4、泛型通配符1. **`<?>`**:任意類型
2. **`<? extends E>`**:向下限定,E及其子類
3. **`<? super E>`**:向上限定,E及其父類