Passar "Coleção" como parametro [Resolvido]

3 respostas
KaosBr

Bom dia,

Tenho uma coleção, com diversas informações, preciso manipular esses valores, através de um metodo. Tentei, fazer conforme a imagem, mas um aviso, que não compreendi, foi exibido:

O objeto, foi criado seguindo a estrutura, abaixo:

List<MinhaClasse> lista = new ArrayList<MinhaClasse>();

Dúvidas:

1- Qual a finalidade e o quer dizer, esse aviso?

2- Qual é a forma correta ou mais adequada, de passar essa coleção, como parametro?

[]s

3 Respostas

acromo

Então cara, é que quando você passa uma lista como parâmetro você deve usar o mesmo tipo de objeto que foi utilizado na declaração da variável no caso seu método ficaria assim:

public void setValoresAtuais(List<MinhaClasse> informeValor) {
     // ...
}
KaosBr

Bom dia,

Perfeito, muito obrigado.

[]s

Nicolas_Fernandes

Só para reforçar:

Quando você quer passar uma coleção por parâmetros para um método, sempre use a classe mãe, a classe abstrata, dessa coleção. O que isso quer dizer?

Suponhamos que eu tenha o seguinte método:

public void manipularLista(ArrayList<MinhaClasse> lista)
{
   //...
}

Como meu parâmetro é um ArrayList, ele só vai aceitar ArrayLists ou filhos dela!

List<MinhaClasse> lista;

lista = new ArrayList<MinhaClasse>();
manipularLista(lista);  // OK!
lista = new LinkedList<MinhaClasse>();
manipularLista(lista); // ERRO! Porquê? LinkedList não é uma ArrayList nem filha dela!!

Agora, se eu fizer o meu método assim…

public void manipularLista(List<MinhaClasse> lista)
{
   //...
}

… estou dizendo que ele aceita qualquer List e filhas dela, ou seja, torna-se um método mais genérico.

List<MinhaClasse> lista;

lista = new ArrayList<MinhaClasse>();
manipularLista(lista);  // OK!
lista = new LinkedList<MinhaClasse>();
manipularLista(lista); // Agora sim, OK! LinkedList é filha de List, e o método aceita ela!

Abraços!

Criado 14 de outubro de 2010
Ultima resposta 14 de out. de 2010
Respostas 3
Participantes 3