Boa noite galera,
A minha dúvida é a seguinte.
Premissas:
class Automovel
class Car extends Automovel
class Golf Extends Car
<blockquote>class test{
List<? super Car> lista= new ArrayList();
lista.add(new Car());
lista.add(new Automovel()); // PORQUE EU N POSSO ADICIONAR AUTOMOVEL? AUTOMOVEL É SUPER EM COMPARAÇÃO A CAR. PELO QUE EU PERCEBI SÓ POSSO ADICIONAR SUBCLASSES.
lista.add(new Palio());
testMethod(lista)
void testMethod(List<? super Palio> listTest ){
//aqui eu já posso receber a lista tranquilo por parametro, pois CAR é SUPER de Palio
}
}
A questão é o seguinte, quando fui adicionar elementos na lista, parece que o <? super Car> está restringindo, só aceita subclasses de Car. Já quando vou passar por parâmetro, é considerando avalia a superclasses do mesmo.
Obrigado pela ajuda desde já !