Dúvida em Cast

2 respostas
E

Bom dia pessoal,

Me ajudem por favor.

O seguinte trecho de código está com erro de Cast na linha "Colaborador colaborador = (Colaborador)it.next();".
Erro: [Ljava.lang.Object; 08:08:39,904 [http-8080-2] java.lang.ClassCastException: [Ljava.lang.Object;

IAppFacade facadeImpl = (IAppFacade)this.getServiceFacade(IAppFacade.class);
List<Colaborador> listaColaborador = facadeImpl.recuperaColaborador();
String mensagem = "Registros ";

for(Iterator it = listaColaborador.iterator(); it.hasNext();) {
  Colaborador colaborador = (Colaborador)it.next();
  String nomeDoColaborador = (String)colaborador.getNome();
  mensagem = mensagem + nomeDoColaborador;    
}

O que pode ser????

Obrigado...

2 Respostas

ViniGodoy

Seu façade pode não estar retornando uma lista de Colaboradores. Tem certeza que ele retorna isso?

De qualquer forma, vc ainda pode evitar o cast no iterator, tipando ele também:

IAppFacade facadeImpl = (IAppFacade)this.getServiceFacade(IAppFacade.class);   
List&lt;Colaborador&gt; listaColaborador = facadeImpl.recuperaColaborador();   
String mensagem = "Registros ";   
  
for(Iterator&lt;Colaborador&gt; it = listaColaborador.iterator(); it.hasNext();) {   
  Colaborador colaborador = it.next();
  String nomeDoColaborador = colaborador.getNome();   
  mensagem = mensagem + nomeDoColaborador;       
}
E

O erro continua na linha “Colaborador colaborador = it.next();”

Um façade não pode retornar uma list?

Segue meu código:

IappFacade:

public interface IAppFacade extends IPlcFacade { public List<Colaborador> recuperaColaborador() throws PlcException; }

AppFacadeImpl:

public class AppFacadeImpl extends PlcFacadeImpl implements IAppFacade, IAppFacadeRemote { public List<Colaborador> recuperaColaborador() throws PlcException { return ((ColaboradorDAO)this.getDAO(ColaboradorDAO.class)).recuperaColaborador(); } }

DAO:

public class ColaboradorDAO extends PlcBaseHibernateDAO { public List<Colaborador> recuperaColaborador() throws PlcException { try{ Session sess = PlcHibernateManagerLocator.getInstance().getHibernateManagerClasse("default").getSession(); return sess.createQuery(" select obj.id, obj.nome from ColaboradorEntity obj") .setParameter("aux", informa) .list(); }catch (Exception e) { } } }

Obrigado.

Criado 28 de outubro de 2008
Ultima resposta 28 de out. de 2008
Respostas 2
Participantes 2