zoukankan      html  css  js  c++  java
  • Arrays.asList 返回值类型

    public static void main(String[] args) {
            Integer[] datas = {1,2,3,4,5};
            List<Integer> list = Arrays.asList(datas);
            list.add(5);
            System.out.println(list.size());
        }

    该代码会报错    java.lang.UnsupportedOperationException  ---不支持的操作

    那么为什么不支持呢,先看API

    再看源码就能很明白问题的所在了

    @SafeVarargs
        @SuppressWarnings("varargs")
        public static <T> List<T> asList(T... a) {
            return new ArrayList<>(a); 
        }

    注意!这个返回的ArrayList可不是我们平时用的,而是Arrays的一个内部类

    private static class ArrayList<E> extends AbstractList<E>
            implements RandomAccess, java.io.Serializable{
    /。。。。。。。。。
    }

    而这个类实现了Serializable接口,这就说明他是可序列化的,正如String一样,不可做更改

  • 相关阅读:
    C#中的委托和事件(续)
    C# 中的委托和事件
    玩转JS插件系列
    gusfield
    线性规划
    后缀自动机
    bitset
    二维树状数组
    线段树合并
    求凸包
  • 原文地址:https://www.cnblogs.com/yangxusun9/p/12178159.html
Copyright © 2011-2022 走看看