異常信息:
java.lang.UnsupportedOperationException
????java.util.AbstractList.remove(Unknown Source)
????java.util.AbstractList$Itr.remove(Unknown Source)
????java.util.AbstractCollection.remove(Unknown Source)
????.....................................
從異常信息可以看出,錯誤定位在集合使用remove方法上,原因是因?yàn)椴糠旨项愋鸵粯拥侨鄙俨糠址椒ɑ虿恢С帧?/p>
如特殊情況如下:
(1)常常使用Arrays.asList()生成的List后調(diào)用add拒啰,remove這些method時出現(xiàn)java.lang.UnsupportedOperationException異常。這是由于:
Arrays.asLis????t() 返回java.util.Arrays$ArrayList市埋, 而不是ArrayList。Arrays$ArrayList和ArrayList都是繼承AbstractList恕刘,remove缤谎,add等method在AbstractList中是默認(rèn)throw UnsupportedOperationException而且不作任何操作。ArrayList override這些method來對list進(jìn)行操作褐着,但是Arrays$ArrayList沒有override remove(int)坷澡,add(int)等,所以throw UnsupportedOperationException含蓉。
解決方法是轉(zhuǎn)為ArrayList:
List?list?= Arrays.asList( 數(shù)組 );
List?arrayList? =?new?ArrayList( list );