有許多原因促成了泛型的出現(xiàn)刑棵,而最引人注意的一個原因砚婆,就是為了創(chuàng)建容器類意蛀。
1.什么是泛型
泛型是Java SE 1.5的新特性,泛型的本質(zhì)是參數(shù)化類型夺饲,也就是說所操作的數(shù)據(jù)類型被指定為一個參數(shù)奸汇。這種參數(shù)類型可以用在類、接口和方法的創(chuàng)建中钞支,分別稱為泛型類茫蛹、泛型接口、泛型方法
2.為什么要用泛型
編碼的時候烁挟,不加泛型是可以的婴洼,但是 你從容器中拿出來的時候必須強制類型轉(zhuǎn)換,第一是多敲很多代碼撼嗓,第二極容易發(fā)生類型轉(zhuǎn)換錯誤
不用泛型
有泛型就可以將錯誤前置到編譯期
3.泛型可以怎么用
應(yīng)用場景小例子1
現(xiàn)在需要有一個類柬采,存放兩個String類型屬性,代碼如下
現(xiàn)在我又想要一個類且警,可以存放兩個屬性粉捻,一個String,一個Integer,OK,我直接改成Object,來啥都不怕
但是這么做每次取出來的都是Object,需要強轉(zhuǎn)回自己傳入的類型斑芜,如果轉(zhuǎn)錯了就會報類轉(zhuǎn)換異常肩刃,所以還得記住自己傳入了什么類型的元素,比較麻煩,用泛型就可以約定每次傳入的類型盈包,取出也不需要強轉(zhuǎn),
來看一下調(diào)用
在JAVA的虛擬機中并不存在泛型沸呐,泛型只是為了完善java體系,增加程序員編程的便捷性以及安全性而創(chuàng)建的一種機制
3.1聲明帶邊界的泛型
3.2泛型方法
4.總結(jié)
虛擬機中沒有泛型呢燥,只有普通類和普通方法
所有泛型類的類型參數(shù)在編譯時都會被擦除
創(chuàng)建泛型對象時請指明類型崭添,讓編譯器盡早的做參數(shù)檢查