Erreur java.lang.NullPointerException

Fermé
Utilisateur anonyme - 6 avril 2017 à 15:51
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 7 avril 2017 à 21:20
salut ts le monde , ca fait des jours que j'essaye de terminé un petit programme sur un arbre généalogique a base des listes chaînées pour faire le clonage de cet arbre
alors j'ai un problème dans la méthode clone() dont le résultat de clonage s'affiche correctement mais après le résultat je reçois toujours le message d'erreur suivant dans le console :
java.lang.NullPointerException
et voila la méthode clone que j'ai écris

donc j'ai besoin d'aide , merci

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
6 avril 2017 à 21:53
Bonjour,

"un arbre généalogique a base des listes chaînées"
C'est à dire ? Quels sont tes attributs et quels sont leurs types ?
Je vois du
suiv
pour la partie liste, mais où est la partie arbre ?

Sinon, où est ton NullPointerException ? Ça correspond à quelle ligne dans ton code ?
0
Utilisateur anonyme
6 avril 2017 à 23:46
pour la classe liste j'ai utilisé deux attributs de type string nom et prenom et le suiv de type liste et la methode clone() pour le clonage de les listes crées
donc l'erreur est dans les deux ligne 74 et 75 voila
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
7 avril 2017 à 00:06
"l'erreur est dans les deux ligne 74 et 75"
Impossible d'avoir un NullPointerException sur ces lignes avec le code que tu nous as montré.

Le seul moyen d'avoir un NullPointerExcepion ligne 74 c'est si this.suiv == null mais dans ce cas il aurait planté avant dans la condition de la boucle ligne 72.
Quant à la ligne 75, ça ne peut arriver que si p2 est null, mais il est initialisé juste au dessus, donc c'est impossible.

Je t'invites à enlever ton try/catch (qui ne sers à rien) recommencer ton code de test et mettre la stack complète de l'exception en précisant bien à quelle ligne de code correspond vraiment chaque ligne de ta stack.
0
Utilisateur anonyme
7 avril 2017 à 00:20
d'accord donc je vais essayer d'enlever le try/catch
0
Utilisateur anonyme
7 avril 2017 à 14:15
méme sans le try/catch toujours l'erreur dans les deux lignes 74 et 75
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
7 avril 2017 à 18:37
Une exception c'est sur une ligne, pas sur deux, donc c'est 74 ou 75 ?

Et est-ce que le code que tu as mis en image est bien aligné ? C'est à dire :
ligne 74 :
liste p3 = this.suiv.getSuiv();

ligne 75 :
liste.ajout_fin((p2.clone()), nom, prenom);


Car comme je l'ai indiqué hier cela semble impossible au vu du code précédent.

Quelle est la stack complète de l'exception ?
0