泛型的本質(zhì)是參數(shù)化類型丝里,是Java的一顆語法糖施蜜。語法糖并不會實(shí)質(zhì)性的功能改進(jìn)卒蘸,但它能提高編碼的效率,或者提升語法的嚴(yán)謹(jǐn)性翻默。
在泛型沒有出現(xiàn)之前缸沃,我們使用一些模板,都是通過Object類來進(jìn)行強(qiáng)轉(zhuǎn)修械,然而在編譯期是不知道是否強(qiáng)轉(zhuǎn)成功的和泌,只有在運(yùn)行期才知道具體的類型,這就增加了程序員犯錯的概率祠肥。
泛型只是在編譯器的一種語法規(guī)則,在經(jīng)過編譯器編譯之后的代碼中任然是用的強(qiáng)轉(zhuǎn)梯皿。所以說java的泛型是一種假泛型仇箱。這種機(jī)制叫做“泛型擦除”。
泛型方法
- 在一個類中东羹,可以包含參數(shù)化的方法剂桥,這個類可以是泛型類,也可以不是属提,也就是說泛型方法不受類的限制权逗。
- static方法需要泛型能力,必須成為泛型方法冤议。應(yīng)為泛型是編譯器會擦除的斟薇,static方法只和類有關(guān),在類加載時就會存在恕酸,和對象無關(guān)的堪滨。