泛型
首先來聊聊什麼是泛型,我們知道Java集合類是支持任意類型的數據的,比如List、Map等這是集合類強大的地方,但是我們需要使用一種機制來規範我們聲明的某一集合類使用的類型,這就用到了泛型。
泛型,也叫做參數化類型,類名後使用Item來定義類型參數,它是一個象徵性的佔位符
例子
來看個例子,也是最常用的例子
public static void fanxingtest(){
List arrayList=new ArrayList();
arrayList.add("string");
arrayList.add(12345);
String str=(String)arrayList.get(0);
String num=(String) arrayList.get(1);
System.out.println(str);
System.out.println(num);
}
運行效果:
會報無法轉型的錯誤,這是出現在運行時的錯誤。當然能自己進行類型轉換來解決,但並不是理想的解決方式。
使用泛型:
List<String> arrayList=new ArrayList();
然後就會在編譯時就會進行檢查:
注意
泛型是用於編譯階段的,並不是說改變了類型,只是一種佔位符,用於在編譯階段進行標識,告訴編譯器對應的類型用於檢查。一旦通過編譯階段,到達運行階段,泛型就會失效。主要用於解決類型安全的問題。我覺得理解到泛型是一種佔位符就能夠舉一反三的理解泛型類、泛型方法、泛型接口了。