亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ArrayList的實現與List接口如何理解

ArrayList的實現與List接口如何理解

江戶川亂折騰 2019-04-13 08:45:37
有一個方法這樣寫是正確的:publicstaticListfunction(){Listlist=newArrayList();returnlist;}但是以下會報錯:publicstaticListfunction(){Listlist=newArrayList();//報錯returnlist;}以下也報錯:publicstaticListfunction(){ArrayListlist=newArrayList();returnlist;//報錯}List接口和ArrayList的實現如何理解?
查看完整描述

2 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

這個和Arraylist實現,List接口沒有關系.
EffectiveJava2nd,item25:
Generics,bycontrast,areinvariant:foranytwodistincttypesType1
andType2,Listisneitherasubtypenorasupertypeof
List[JLS,4.10;Naftalin07,2.5].
為了防止下面的情況:
//Won'tcompile!
Listol=newArrayList();//Incompatibletypes
ol.add("Idon'tfitin");
針對你的問題:
List>list=newArrayList>();//報錯
如果按你的邏輯不報錯,那么list里可以放入ArrayList,也可以放入LinkedList.
顯然違反了類型安全.
List>list=newArrayList>();
list.add(newLinkedList());//OOPS!
                            
                            
查看完整回答
反對 回復 2019-04-13
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

List和List無論T1和T2是什么關系這兩個容器類型都不構成關系
List的引用能夠指向ArrayList的實例
                            
查看完整回答
反對 回復 2019-04-13
  • 2 回答
  • 0 關注
  • 424 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消