[quote=anderson.bonavides]Dado um metedo declarado como:
public static List<? super E> process(List nums)
Um progrma deseja usar esse método da seguinte forma:
//INSIRA AS DECLARAÇÕES AQUI.
output = process(input);
a) ArrayList input = null;
ArrayList output = null;
b) ArrayList input = null;
List output = null;
c) ArrayList input = null;
List output = null;
d) List input = null;
ArrayList output = null;
e) List input = null;
ArrayList output = null;
e) List input = null;
List output = null;
B, E e F estão correas.
Alguêm poderia me dar uma força, não entendi a conclusão da resposta.
[/quote]
po pegadinha isso ai…to analisando aqui o codigo a 30min e a conclusao que cheguei:
e a pegadinha é aqui output = process(input);
a invaliado. por que? observe o tipo de retorno do metodo é um List e e to fazendo na letra a algo tipo isso:
ArrayList = List
isso nao pode certo?
b nao há problema aqui. qual o problema de List receber um ArrayList?
c os tipos sao diferentes entao nao posso ter:
[code]
List = ArrayList
d mesmo problema acima
e,f não problemas nenhum
cara essa questao que sabero o uso de genericos mais ainda se saber o funcionamento de tipo… so q ele usou a complexidade ao infinito…
se ele fizesse assim:
List<Integer> list = new ArrayList<Number>();
vc ia marcar logo de cara nao compila… hehe… entao ele quer prova se vc sabe a regra de genericos em codigos mais complexos… hehe mata o cara. uma questao dessa eu fazia no papel como aconteceu la… tee questao que tive que fazer linha a linha no papel… sempre vai ter umas 2 ou 3 questoes q vai ter usar o papel, devido as pegadinhas desse tipo…
se eu tiver errado nas respostas acima me corrigam… mais foi o que eu conseguir tirar da questao olhando… o pq que as outras estavam erradas e essa estavam certas…
flw!!