outro problema ocorre quando quero passar um ArrayList para um metodo que espera um ArrayList.
publicvoiduseList(ArrayListx){…}publicvoidfoo(){…ArrayListarrayList=newArrayList();/* Da Zica aqui ! */useList(arrayList);…}
[]'s
dreampeppers99
E
estevan.diedrich
Owwwww…
dreampeppers99, vc matou minha duvida com um headshot…
=))
muito obrigado.
sergiotaborda
estevan.diedrich:
outro problema ocorre quando quero passar um ArrayList para um metodo que espera um ArrayList.
public void useList(ArrayList<MyInterface> x)
{
...
}
public void foo()
{
...
ArrayList<MyClass> arrayList = new ArrayList<MyClass>();
/* Da Zica aqui ! */
useList(arrayList);
...
}
[]'s
Um método que espera List só aceitará que passe list não aceita filhos.
Para aceitar filhos vc precisa declarar isso assim : List<? extends MyInterface> que se lê “Lista de qualquer coisa que herde de MyInterface”
Por padrão todos os métodos que recebem objetos tipados (como list) devem ser declarados com “? extends” para permitir que polimorfismo seja utilizado.