Bueno ... no hay punto uno declarará ArrayList como éste, en lugar de sus intenciones serán fullfilled escribiendo
ArrayList < Supertype> obj = new ArrayList < Supertype>();
Según mi experiencia, he visto esta noción en los argumentos del método, donde espera que su interlocutor proporcione una colección de subtipos de Supertipo particular (o regrese de un método del mismo modo que alguien dijo anteriormente). al igual que de la siguiente manera
public getAnimals(List< ? extends Animal> obj){
obj.add(something); //not allowed
}
hay posibilidades razonables que se pueden agregar burros, monos y aves, etc en su Lista de cierto tipo decir (mono). y obtenga classCastException mientras obtiene de ello.
Es por eso que no está permitido en este caso. lea Java efectivo por Josh Bloch. lo ha explicado bien con la analogía del consumidor productor (PECS)
posible duplicado de [¿Cómo se pueden agregar elementos a una colección genérica comodín?] (http://stackoverflow.com/questions/176446/how-can-elements- be-added-to-a-wildcard-generic-collection) –