Erreur java.lang.NullPointerException

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

  1. Modérateur
    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
    1. 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
    2. Modérateur
      "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
    3. d'accord donc je vais essayer d'enlever le try/catch
      0
    4. méme sans le try/catch toujours l'erreur dans les deux lignes 74 et 75
      0
    5. Modérateur
      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