Java.util.NoSuchElementException
Résolu
Amaurykas
Messages postés
7
Statut
Membre
-
Amaurykas Messages postés 7 Statut Membre -
Amaurykas Messages postés 7 Statut Membre -
Bonjour, je me heurte à un problème qui dépasse ma compréhension de Java :
voici mon code :
avec le constructeur de Convertisseur :
et voici mon message d'erreur :
L'erreur semble donc se situer sur le constructeur, mais je ne comprends pas où.
Merci de m'éclairer de vos lumières, je vois vraiment pas quoi faire.
voici mon code :
System.out.println("ok1");
this.tPoisson = tPos.gettPositions();
System.out.println("ok2");
Convertisseur cConv1 = new Convertisseur(tPoisson,iNombreDePasDuTest); //il n'aime pas cette ligne?! WTF
System.out.println("ok3");
avec le constructeur de Convertisseur :
public Convertisseur(int[][][] tPositions,int iPas) {
super();
System.out.println("Okai test");
int[] tTemp = new int[2];
int i;
int j;
for (i = 0; i < iPas; i++) {
for (j = 0; j < 10; j++) {
tTemp[0] = tPositions[i][j][0];
tTemp[1] = tPositions[i][j][1];
if (tTemp[0] != -1) {
lListePositionsDemandées.addLast(tTemp);
}
}
}
}
et voici mon message d'erreur :
ok1 ok2 Exception in thread "AWT-EventQueue-0" java.util.NoSuchElementException at java.util.LinkedList$ListItr.next(Unknown Source) at approchei.Approchei.setiCoutModificationListe(Approchei.java:111) at approchei.Approchei.settRésultats(Approchei.java:137) at principale.LaGrandeClasse.<init>(LaGrandeClasse.java:111) at interface_graph.BoiteDialogue.calcul(BoiteDialogue.java:912) at interface_graph.BoiteDialogue$2.actionPerformed(BoiteDialogue.java:138) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$400(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Okai test ok3
L'erreur semble donc se situer sur le constructeur, mais je ne comprends pas où.
Merci de m'éclairer de vos lumières, je vois vraiment pas quoi faire.
1 réponse
-
Il faut toujours regarder les premières lignes des exceptions, c'est là que l'on trouve les seules informations importantes pour trouver le bug :
java.util.NoSuchElementException at java.util.LinkedList$ListItr.next(Unknown Source) at approchei.Approchei.setiCoutModificationListe(Approchei.java:111) at approchei.Approchei.settRésultats(Approchei.java:137) at principale.LaGrandeClasse.<init>(LaGrandeClasse.java:111)
D'après cette description tu as une méthode "setiCoutModificationListe" où tu utilises des Iterator. Or tu fais un "next" en trop, c'est à dire sur une liste où il n'y a plus rien après, d'où l'exception "NoSuchElementException".
Il faut que tu utilises la méthode "hasNext" avant de faire un "next" pour savoir à quel moment il n'y a plus d'élément pour t'arrêter. Tu peux aussi utiliser une boucle for each qui est plus simple à manipuler que les Iterator et qui suffit dans la plupart des cas.