?# 第四章第三節--3 編寫泛型
標簽(空格分隔): 廖雪峰
---
## 如何編寫一個泛型類
簡單方法
- 按照某種類型(比如`String`)編寫類
- 標記所有的特定類型.
- 把特定類型更換成T,生在方法名后面聲明<T>.


當然熟練之后可以直接編寫.
## 注意事項
編寫泛型`<T>`不能用于靜態方法:
- 編譯錯誤
- 編譯器無法在編譯器或者靜態方法中使用泛型類型`<T>`.

不過有人會發現在`Static`之后添加`<T>`則不會報錯,如下所示

主要注意的是這里的`T`和作為泛型參數傳遞過來的`T`沒有關系,應該在實現的代碼中改為其他的標識符.

編譯泛型的時候可以在函數名之后傳入兩種泛型參數

## 小節小結
- 編寫泛型時,需要在函數名之后添加泛型參數`<T>`.
- 靜態方法不能引用泛型參數`<T>`,必須使用其他的類型`<K>`來實現泛型.
- 泛型可以用來定義兩種類型`<T,K>`
- 前言
- 一:Java快速入門
- 二:Java面向對象編程
- 三:Java異常處理
- 錯誤處理
- Java的異常
- 捕獲異常
- 拋出異常
- 自定義異常
- 斷言和日志
- 使用斷言
- 使用JDK Logging
- 使用Commons Logging
- 使用Log4j
- 四:Java反射與泛型
- 反射
- Class類
- 訪問字段
- 調用方法
- 調用構造方法
- 獲取繼承關系
- 注解
- 使用注解
- 定義注解
- 處理注解
- 泛型
- 什么是泛型
- 使用泛型
- 編寫泛型
- 擦拭法
- extends通配符
- super通配符
- 泛型和反射
- 五:Java集合
- Java集合簡介
- Java集合簡介
- List
- 使用List
- 編寫equals方法
- Map
- Set
- Queue
- Stack
- 最佳實踐
- 六:Java IO編程
- 七:Java處理日期和時間
- 八:JUnit單元測試
- 九:Java正則表達式
- 十:Java加密與安全
- 十一:Java多線程編程
- 十二:Maven基礎
- 十三:Java網絡編程
- 十四:Java操作XML和JSON
- 十五:Java JDBC編程
- 十六:Java函數式編程