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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM