12345678_0001
2021-05-18 19:15:15
java中List集合使用泛型與不使用泛型有什么區(qū)別?例如:List lists=new ArrayList();和List<String> lists=new ArrayList<String>();他們兩者有什么樣區(qū)別?
2 回答

嚕嚕噠
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個(gè)贊
從list中取出的值不一樣,第一種的話取出來是object類型的,需要強(qiáng)制類型轉(zhuǎn)換,而第二個(gè)不用,取出來之后直接就是string類型的

白豬掌柜的
TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
泛型其實(shí)還有一個(gè)通俗的名字:參數(shù)化類型(使用參數(shù)指明了該傳什么類型)。就是明確指定了運(yùn)行期集合中對(duì)象的類型。如果沒有泛型,那我一切的對(duì)象直接使用Object和強(qiáng)制類型轉(zhuǎn)換就解決了不是嗎?但是這種有個(gè)問題,就是會(huì)在運(yùn)行期出現(xiàn)隨處可見的強(qiáng)制類型轉(zhuǎn)換異常ClassCastException。而指定了參數(shù)化類型,是不是我們?cè)诰幾g期就進(jìn)行檢查了,傳入List<String>類型,List里面只能放入String,你add其他類型編譯不會(huì)通過的,就不要提運(yùn)行期檢查了。。。所以你提泛型搞不懂就理解為參數(shù)化類型這個(gè)事就完事了
添加回答
舉報(bào)
0/150
提交
取消