1. 程式人生 > >為什麽使用 Arrays.asList()得到的集合,使用remove( )和 add( )方法會拋出unsupportedoperationexception(不支持操作異常)

為什麽使用 Arrays.asList()得到的集合,使用remove( )和 add( )方法會拋出unsupportedoperationexception(不支持操作異常)

操作 err move lan 16px exceptio operation amp span

 這是由於:
  
  Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList。


Arrays$ArrayList和ArrayList都是繼承AbstractList,remove,add等 method在AbstractList中是默認throw UnsupportedOperationException而且不作任何操作。


  
ArrayList override這些method來對list進行操作,但是Arrays$ArrayList沒有override remove(int),add(int)等,所以throw UnsupportedOperationException。


  解決方法是使用Iterator,或者使用 ArrayList。

為什麽使用 Arrays.asList()得到的集合,使用remove( )和 add( )方法會拋出unsupportedoperationexception(不支持操作異常)