Unsupported Operation Exception異常是怎樣的,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
昌圖網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),昌圖網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為昌圖1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的昌圖做網(wǎng)站的公司定做!
public class test {
public static void main(String[] args) {
//定義一個(gè)字符長(zhǎng)度為5的字符串
String[] strings = new String[5];
strings[0] = "a";
strings[1] = "b";
strings[2] = "c";
strings[3] = "d";
strings[4] = "e";
//調(diào)用Arrays中的asList方法將String[]轉(zhuǎn)化為L(zhǎng)ist
List
System.out.println("list
//為list添加一個(gè)元素
list.add("f");
System.out.println("list
}
}
當(dāng)當(dāng)當(dāng),小可愛們是不是跟偶想的一樣呢,這沒(méi)問(wèn)題啊,這不挺好的嗎,先將String[]轉(zhuǎn)換為L(zhǎng)ist< String >,然后再添加一個(gè)元素f,那最終輸出的結(jié)果是a,b,c,d,e,f。
這套邏輯簡(jiǎn)直完美,此處配上祖藍(lán)的perfect。
好了,話不多說(shuō),咱直接看結(jié)果。
duang,傻眼了,咦,這是個(gè)啥啊,為啥報(bào)錯(cuò)啦,這不符合邏輯啊。偶是不是又變菜啦,nonono,我是要成為大鳥的女紙。
下面開始正式講解了,不鬧啦。
1
咱先看再String[]轉(zhuǎn)為L(zhǎng)ist< String >的時(shí)候沒(méi)有報(bào)錯(cuò),是正確的輸出了結(jié)果。那是在對(duì)List進(jìn)行add操作的時(shí)候,報(bào)錯(cuò)啦。emmm,在哪行出錯(cuò)找到了。
2
那么下面就找一下,他為什么報(bào)錯(cuò)。我們看一下進(jìn)行轉(zhuǎn)化的時(shí)候,都干了啥,如下圖,asList是通過(guò)新建一個(gè)ArrayList來(lái)接收String[]的數(shù)值。
3
再看ArrayList是不是我們熟悉的那個(gè)ArrayList,也就是可以通過(guò)add,remove方法進(jìn)行操作,如下圖,很明顯,這并不是ArrayList類,而是Arrays里面新建了一個(gè)內(nèi)部類ArrayList,而這個(gè)內(nèi)部類是繼承于AbstractList類,AbstractList類里面的add方法是會(huì)拋出UnsupportedOperationException異常的。
4
那么有人要問(wèn),咦,那為什么ArrayList可以呢,答案就是ArrayList給我們做好了事情,也就是重寫了add方法。
如果在將String[]轉(zhuǎn)化為L(zhǎng)ist
看完上述內(nèi)容,你們掌握Unsupported Operation Exception異常是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!