这样做的目的应该是不允许修改public static List asList(Object[] a) {
   return new ArrayList(a);
}public void add(int index, Object element) {
 throw new UnsupportedOperationException();
}

解决方案 »

  1.   


    后面的add函数是AbstractList的。
      

  2.   

    另外asList中 new ArrayList(a);
                    ----------
                    这是一个内部类,不是java.util.ArrayList综上所述,asList返回的类型是AbstractList, 
    这个类没有实现add方法,所以抛出UnsupportedOperationException可以参考Arrays.java和AbstractList.java两个文件。
      

  3.   

    TO:kingfish(八百里秦川@龙城异客) 
    另外asList中 new ArrayList(a);
    这是一个内部类,不是java.util.ArrayList
    综上所述,asList返回的类型是AbstractList, ---------------------------------------------
    有一点不明白程序确认是在add的时候报的错误 但是 System.out.println(tempList1.getClass()); 输出结果为class java.util.Arrays$ArrayList  有点不解,请解释一下 谢谢
      

  4.   

    java.util.Arrays$ArrayList 表示ArrayList 是java.util.Arrays的一个内部类(不是java.util.ArrayList)楼主可以自己写一个内部类,看编译成功之后的内部类是不是这样的
      

  5.   

    OK 看一下 asList 的 API 好了asList
    public static List asList(Object[] a)Returns a fixed-size list backed by the specified array. (Changes to the returned list "write through" to the array.) This method acts as bridge between array-based and collection-based APIs, in combination with Collection.toArray. The returned list is serializable and implements RandomAccess. Return 的是一个 fixed-size 的 list 
    所以呢 add 操作当然是 UnsupportedOperation 了
      

  6.   

    主要fixed-size是通过什么实现的?  那就是内部类