码迷,mamicode.com
首页 > 其他好文 > 详细

Arrays.asList 返回值类型

时间:2020-01-10 22:32:37      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:abs   res   问题   java   out   system   void   swa   http   

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

Arrays.asList 返回值类型

标签:abs   res   问题   java   out   system   void   swa   http   

原文地址:https://www.cnblogs.com/yangxusun9/p/12178159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!