No se pudo iterar sobre los objetos de lista
Frecuentes
Visto 176 veces
0
Tener problemas con el iterador. Necesita iterar sobre ArrayList y encontrar cualquier otro objeto que no sea este e imprimir su nombre. El programa utiliza subprocesos. ¿Cómo puede el iterador producir un error cuando entró? while
bucle cuando itr.hasNext()
era igual true
?
Stack trace:
Thread [JOE] (Suspended (exception NoSuchElementException))
ArrayList$Itr.next() line: not available [local variables unavailable]
Monster.beginFight(Monster) line: 55
Monster.run() line: 28
Método
private void tryName(Monster monster){
Iterator<Monster> itr = room.monsters.iterator();
while(itr.hasNext()){
if (!itr.next().equals(monster)) {
System.out.println(monster.getName() + "some text "
+ itr.next().getName());
break;
}
}
}
¿Por qué tengo en ArrayList$Itr.siguiente() pestaña que muestra: Fuente no encontrada?
1 Respuestas
7
Cada vez que llamas itr.next
avanzará el iterador al siguiente elemento. Necesitas hacer algo como:
while(itr.hasNext()) {
Monster m = itr.next();
// rest of your code using m instead of itr.next()
}
contestado el 03 de mayo de 12 a las 22:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas java eclipse oop or haz tu propia pregunta.
Básicamente, tu problema es llamar
itr.next()
dos veces en el lazo. - Louis WassermanRecuerde compilar con información de depuración para obtener variables locales. - Thorbjørn Ravn Andersen