[RESOLVIDO] java.lang.ClassCastException

Olá galera do GUJ, to com um problema no seguinte código abaixo:

Alguem pode me dar uma luz!?

Obrigado,

Paulo Henrique Amorim.

public static void main(String[] args) {

	List<Jogo> jogos = BusinessDelegate.getInstance().getJogoController().listarJogosIds();
	
	System.out.println("Jogos:" + jogos);
	
	Iterator iterador = jogos.iterator();
	
	while (iterador.hasNext()) {
		Jogo jogo =  (Jogo) iterador.next();
		
		List<Desafios> levelDesafios = BusinessDelegate.getInstance().getDesafioController().listarLevelUsadoDoJogo(jogo.getId());
		
		System.out.println("Level:" + levelDesafios);
	}
	
}

}

stack Trace:

Exception in thread “main” java.lang.ClassCastException: java.util.ArrayList cannot be cast to common.entity.Jogo
at backend.action.desafioAutomatizado.TesteBalanceamentoDesafio.main(TesteBalanceamentoDesafio.java:22)

Posta o stackTrace…
Provavelmente eh a parte:

List<Jogo> jogos = BusinessDelegate.getInstance().getJogoController().listarJogosIds(); 

tenta fazer assim:

List<Jogo> jogos = new ArrayList<Jogo>();
jogos.add(BusinessDelegate.getInstance().getJogoController().listarJogosIds());

[]'s

marca no seu código qual é a linha 22 e qual é o retorno do método listarJogosIds() ?

Qual o retorno do método listarJogosIds()? Retorna uma lista?

Me parece que o problema está na linha:

List<Jogo> jogos = BusinessDelegate.getInstance().getJogoController().listarJogosIds();

Valeu, pelas dicas galera…

Obrigado,

Paulo Henrique Amorim

[quote=paulohenriqueamorim]Galera o que eu quero fazer é o seguinte… pegar os valores do list e mandar uma a um para outro método… mas estou esbarrando nesse erro: java.lang.ClassCastException…

preciso de ideias pq as minhas estão esgotando…

Obrigado,

Paulo Henrique Amorim[/quote]

Me parece que o erro é nessa linha:

Provavelmente há algo errado no que o next está devolvendo…

Tente fazendo assim:

for(Jogo jogo: jogos) { List<Desafios> levelDesafios = BusinessDelegate.getInstance().getDesafioController().listarLevelUsadoDoJogo(jogo.getId()); System.out.println("Level:" + levelDesafios); }
Neste caso, o iterator é transparente para você (o java continua usando iterator mas transparentemente).