真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

為啥阿里巴巴開發(fā)手冊明確說明Arrays.asList()不能用其修改方法

引語

創(chuàng)新互聯(lián)專注于阿爾山企業(yè)網(wǎng)站建設(shè),響應式網(wǎng)站開發(fā),商城網(wǎng)站制作。阿爾山網(wǎng)站建設(shè)公司,為阿爾山等地區(qū)提供建站服務。全流程按需網(wǎng)站開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務

阿里巴巴java開發(fā)規(guī)范說到使用工具類Arrays.asList()方法把數(shù)組轉(zhuǎn)換成集合時,不能使用其修改集合相關(guān)的方法,它的add/remove/clear方法會拋出UnsupportedOperationException(),我們來看一下為什么會出現(xiàn)這種情況.

問題分析

我們做個測試

為啥阿里巴巴開發(fā)手冊明確說明Arrays.asList()不能用其修改方法

被注釋的三行可以分別解開注釋,運行后確實出現(xiàn)了規(guī)約中所說的異常.我們來看下Arrays.asList()做了什么操作.

為啥阿里巴巴開發(fā)手冊明確說明Arrays.asList()不能用其修改方法

看上去是個很正常的方法,然而實際上你點進到ArrayList發(fā)現(xiàn),其實ArrayList并不是我們平時用的ArrayList.

為啥阿里巴巴開發(fā)手冊明確說明Arrays.asList()不能用其修改方法

而是Arrays里面的一個內(nèi)部類.而且這個內(nèi)部類沒有add,clear,remove方法,所以拋出的異常其實來自于AbstractList.

為啥阿里巴巴開發(fā)手冊明確說明Arrays.asList()不能用其修改方法

點進去就會發(fā)現(xiàn)拋出異常的地方,clear底層也會調(diào)用到remove所以也會拋出異常.

總結(jié)

1.Arrays.asList()不要亂用,底層其實還是數(shù)組;

2.如果使用了Arrays.asList()的話,最好不要使用其集合的操作方法;

3.List list = new ArrayList<>(Arrays.asList("a", "b", "c"))可以在外面這樣包一層真正的ArrayList(數(shù)組轉(zhuǎn)集合有很多方式,可以參考https://stackoverflow.com/questions/157944/create-arraylist-from-array).

歡迎工作一到五年的Java工程師朋友們加入我的個人粉絲群(Java架構(gòu)技術(shù)棧:728987924)群內(nèi)提供免費的Java架構(gòu)學習資料(里面有高可用、高并發(fā)、高性能及分布式、Jvm性能調(diào)優(yōu)、Spring源碼,MyBatis,Netty,redis,Kafka,MySQL,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構(gòu)資料)

合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!


網(wǎng)頁名稱:為啥阿里巴巴開發(fā)手冊明確說明Arrays.asList()不能用其修改方法
瀏覽路徑:http://weahome.cn/article/gjigjg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部