Sendo que Dog extende Animal e [color=red]Integer[/color] não tem nada haver com a hierarquia. Não seria o correto dar problema na chamada testeVoid(lista3); na linha 12, pois a mesma passa um java.lang.Integer?
static <T extends Animal> void testeVoid(List<? super T> listaIn) {
}
public static void main(String[] args) {
List<Animal> lista1 = new LinkedList<Animal>(); // Animal é Superclasse
List<Dog> lista2 = new LinkedList<Dog>(); // Dog é Subclasse de Animal
List<Integer> lista3 = new LinkedList<Integer>(); // Integer não faz parte da Hierarquia
testeVoid(lista1); // OK! Animal é um Animal
testeVoid(lista2); // OK! Dog é um Animal
testeVoid(lista3); // Não deveria acusar problema aqui? Estou passando um Integer (Não é Animal)
}
Desde já agradeço a ajuda. :wink: