2014-02-13 3 views
1

В файле Arrays.java. Метод asList определяется ниже.Реализация Arrays.asList() в java

@SafeVarargs 
    public static <T> List<T> asList(T... arr) { 
     return new ArrayList<>(arr); 
    } 

Здесь конструктор ArrayList вызывается с массивом. (Обр), новый ArrayList (обр). Но в классе ArrayList нет конструктора, который принимает Array как аргумент. Класс класса находится в коллекции FrameWork, но не реализует интерфейс Collection. Конструкторы в ArrayList являются

ArrayList() 

ArrayList(Collection<? extends E> c) 

ArrayList(int initialCapacity) 

может кто-то объяснить, что там происходит?

ответ

9

Он использует конструктор ArrayList(E[] array) частного статического класса ArrayList<E>, который присутствует в файле Arrays.java.

+0

+1, который, оказывается, находится всего в нескольких строках ниже кода OP, размещенного ... – Brian

Смежные вопросы