java中的Arrays.asList()实现

Pus*_*raj 1 java arrays arraylist

在Arrays.java文件中.方法asList定义如下.

 @SafeVarargs
    public static <T> List<T> asList(T... arr) {
        return new ArrayList<>(arr);
    }
Run Code Online (Sandbox Code Playgroud)

这里使用Array.(arr),new ArrayList(arr)调用ArrayList构造函数.但是ArrayList类中没有构造函数接受Array作为参数.Array类在Collections FrameWork中,但没有实现Collection接口.ArrayList中的构造函数是

ArrayList()

ArrayList(Collection<? extends E> c)

ArrayList(int initialCapacity)
Run Code Online (Sandbox Code Playgroud)

谁能解释那里发生了什么?

Ale*_* C. 11

它使用ArrayList(E[] array)私有静态类的构造函数,该构造函数ArrayList<E>存在于Arrays.java文件中.