爲什麼會有泛型呢?
通過案例引入
早期的Object類型可以接收任意的對象類型,但是在實際的使用中,會有類型轉換的問題。也就存在這隱患,所以Java提供了泛型來解決這個安全問題
泛型應用
泛型類
把泛型定義在類上
格式:public class 類名<泛型類型1,…>
注意:泛型類型必須是引用類型
泛型方法
把泛型定義在方法上
格式:public <泛型類型> 返回類型 方法名(泛型類型 .)
泛型接口
把泛型定義在接口上
格式:public interface 接口名<泛型類型1…>
泛型高級(通配符)
泛型通配符<?>
任意類型,如果沒有明確,那麼就是Object以及任意的Java類了
? extends E
向下限定,E及其子類
? super E
向上限定,E及其父類
增強for概述及使用
增強for概述
簡化數組和Collection集合的遍歷
格式:
for(元素數據類型 變量 : 數組或者Collection集合) {
使用變量即可,該變量就是元素
}
**好處:**簡化遍歷
注意事項:增強for的目標要判斷是否爲null
把前面的集合代碼的遍歷用增強for改進
靜態導入概述及使用
靜態導入概述
格式:import static 包名….類名.方法名;
可以直接導入到方法的級別
注意事項
方法必須是靜態的
如果有多個同名的靜態方法,容易不知道使用誰?這個時候要使用,必須加前綴。由此可見,意義不大,所以一般不用,但是要能看懂
可變參數概述及使用
可變參數概述
定義方法的時候不知道該定義多少個參數
格式
修飾符 返回值類型 方法名(數據類型… 變量名){}
注意:
這裏的變量其實是一個數組
如果一個方法有可變參數,並且有多個參數,那麼,可變參數肯定是最後一個
Arrays工具類中的一個方法
public static List asList(T… a)