java泛型是對Java語言的類型系統(tǒng)的一種擴(kuò)展,泛型的本質(zhì)就是將所操作的數(shù)據(jù)類型參數(shù)化。下面我會(huì)由淺入深地介紹Java的泛型。
一:泛型出現(xiàn)的背景
在java代碼里,你會(huì)經(jīng)常發(fā)現(xiàn)類似下邊的代碼:
public class Test { public static void main(String[] args) { List list = new ArrayList(); list.add("hah"); //list.add(new Test()); // list.add(1); for (Object object : list) { String s1 = (String)object; //.....如果是你你該如何拿出list的值,如果list中放著上邊的不同類型的東西。無解 } } }
編碼的時(shí)候,不加泛型是可以的,但是 你從容器中拿出來的時(shí)候必須強(qiáng)制類型轉(zhuǎn)換,第一是多敲很多代碼,第二極容易發(fā)生類型轉(zhuǎn)換錯(cuò)誤,這個(gè)運(yùn)行時(shí)異常 比如你把上邊
注釋的代碼放開,程序在獲取容器的地方就會(huì)報(bào)運(yùn)行時(shí)異常 ClassCasrException
Java語言的設(shè)計(jì)者引入了泛型,暫時(shí)先不追究它內(nèi)在是怎么