91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-07-14 04:11:21 來源:網絡 閱讀:284 作者:Java技術箭 欄目:編程語言

引語

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

問題分析

我們做個測試

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


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

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


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

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


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

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


點進去就會發現拋出異常的地方,clear底層也會調用到remove所以也會拋出異常.

總結

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

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

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

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

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


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安康市| 永新县| 广河县| 化德县| 沈阳市| 柳林县| 宜川县| 毕节市| 青田县| 丰台区| 黄梅县| 金湖县| 勐海县| 徐水县| 高淳县| 类乌齐县| 鸡东县| 胶州市| 徐闻县| 嘉义县| 寿阳县| 海城市| 宁城县| 宜兰市| 青海省| 屏山县| 新宁县| 厦门市| 珲春市| 宜丰县| 苏尼特右旗| 收藏| 中西区| 新邵县| 霸州市| 龙里县| 仙居县| 石渠县| 石楼县| 蓬莱市| 永胜县|