更新時(shí)間:2019-12-19 16:30:24 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2611次
沒有泛型之前的java世界是什么樣的呢?在Java SE 1.5之前,如果大家想實(shí)現(xiàn)參數(shù)的“任意化”,只能通過Object來想辦法,問題來了,你后續(xù)想要轉(zhuǎn)回來,必須要顯示的進(jìn)行強(qiáng)制類型轉(zhuǎn)化,想要進(jìn)行強(qiáng)制類型轉(zhuǎn)化,你又必須預(yù)知實(shí)際參數(shù)的類型,對(duì)于強(qiáng)制類型轉(zhuǎn)換錯(cuò)誤的情況,編譯器可能不提示錯(cuò)誤,在運(yùn)行的時(shí)候才出現(xiàn)異常,這是一個(gè)安全隱患。
這里舉個(gè)例子:
上面的例子不難看出,在編譯器,jvm沒報(bào)錯(cuò),但是運(yùn)行的時(shí)候,boom。
泛型的好處是在編譯的時(shí)候檢查類型安全,并且所有的強(qiáng)制轉(zhuǎn)換都是自動(dòng)和隱式的,以提高代碼的重用率。
泛型出現(xiàn)之前大家怎么實(shí)現(xiàn)的呢:
泛型出現(xiàn)后:
這里的T的類型的參數(shù),具體T指代什么類型,是String還是Integer類型此處不管,而在程序員開發(fā)時(shí)使用到Container時(shí)再指定,如:
這種環(huán)境下,編譯器就知道Container容器是放String類型對(duì)象的,并進(jìn)行類型安全檢查。
這樣設(shè)計(jì)的容器在使用時(shí)編譯器就可以幫忙做很大一部分的類型安全檢查工作了,這就避免了很多運(yùn)行時(shí)的ClassCastException異常,程序員也無需記住各種對(duì)象的類型和擔(dān)心類型匹配問題了。同時(shí)大部分情況下也不用做類型強(qiáng)制轉(zhuǎn)換工作了。
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“教你幾分鐘秒懂Java泛型”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
Java全套自學(xué)資料+視頻
Java自學(xué)視頻教程(免費(fèi)學(xué)習(xí)):http://m.ilovecolors.com.cn/video.html
Java技術(shù)教程:http://m.ilovecolors.com.cn/tutorial/
相關(guān)文章
零基礎(chǔ)怎么自學(xué)Java,完整版Java學(xué)習(xí)路線圖
你還在糾結(jié)學(xué)Java,是自學(xué)還是去培訓(xùn)班嗎
一個(gè)標(biāo)準(zhǔn)的Java程序員如何進(jìn)階?
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)