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一样,不可做更改

  • 相关阅读:
    java类加载机制
    java反射
    java注解
    设计模式 单例模式
    #1015 : KMP算法
    idea 快捷键
    基础数据类型综合
    工厂模式 VS 策略模式
    AtomicI 多线程中的原子操作
    ThreadLocal<T>
  • 原文地址:https://www.cnblogs.com/yangxusun9/p/12178159.html
Copyright © 2011-2022 走看看