Dúvida Cast List em Java

7 respostas
R

Bom, tenho uma Classe AbstractBean e uma PessoaFisica que estende de AbstractBean.

Porém não consigo fazer cast de uma lista de AbstractBean para PessoaFisica, igual ao código abaixo:

List<PessoaFisica> pessoas = getAllPessoas();

O método getAllPEssoas() retorna uma List

Como resolver isso ?

7 Respostas

drsmachado

PessoaFisica estende de AbstractBean? Se não, esquece.

R

estende

drsmachado

Então isso

List<PessoaFisica> pessoas = (List<PessoaFisica>) getAllPessoas();

deveria resolver.
Mas, acho que o método retornar uma List meio estranho, eu preferiria definir o retorno como List<?>

R

Ja tentei da forma acima fazendo cast direto e nao funciona.

R

Entendo que pelo List<?> possa funcionar, mas porque não fazer usando polimorfismo ? Já que PEssoaFisica estende de AbstractBean

drsmachado

Por que isso não é polimorfismo, gafanhoto.
Procure no google o significado de polimorfismo e você entenderá.
O que está acontecendo é que, por alguma razão, PessoaFisica não está sendo identificada como uma subclasse de AbstractBean…

R

Só para você ter uma ideia, fiz da forma abaixo e funcionou:

public List<? extends AbstractBean> findAll(Class beanClass) {
 ...
}
Criado 17 de agosto de 2013
Ultima resposta 18 de ago. de 2013
Respostas 7
Participantes 2