Posso adicionar a uma coleção genérica de valores do tipo A do tipo B, que se estende A, sem nenhuma sintaxe especia

public class Stack<E> {
    public Stack () {....}
    public void push (E e) {....}
    public E pop () {....}
    public boolean isEmpty(){....}
}

public void pushAll (Collection<E> src) {
    for (E e: src){
        push(e)
    }
}

Eu não entendo qual será o problema se eu escrever

Stack<number> numberStack = new Stack<Number>();
Collection<Integer> integers=...
numberStack.pushAll(integers);

Integer estende Number, para que eu possa adicionar uma coleção de Inteiros anumberStack. Mas me disseram que isso é uma compilação de erros - Por quê?

questionAnswers(3)

yourAnswerToTheQuestion