Почему Collection.toArray (T []) вместо этого не принимает E []

toArray метод (давайте выберем реализацию вjava.util.ArrayList) является следующим:

class ArrayList<E> ....{
    public <T> T[] toArray(T[] a){
        if(a.length < size)
            return (T[]) Arrays.copyof(elementData, size, a.getClass());
        System.arraycopy(elementData, 0, a, 0, size);
        if(a.length > size)
            a[size] = null;
        return a;
    }    
}

Мне интересно, мы могли бы использовать<E> вместо<T> в этом случае ? лайк

public E[] toArray(E[] a){
      if(a.length < size)
             return (E[]) Arrays.copyof(elementData, size, a.getClass());
      System.arraycopy(elementData, 0, a, 0, size);
      if(a.length > size)
            a[size] = null;
      return a;
}    

Поскольку класс ArrayList для самого себя уже является общим<E>так что мы могли бы использовать это вместо нового универсального типа<T> ?

Ответы на вопрос(2)

Ваш ответ на вопрос