Java : NullPointerException
Résolu/Fermé
A voir également:
- Java : NullPointerException
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Télécharger jeux java gameloft gratuit - Forum Mobile
- Java décompiler - Télécharger - Langages
2 réponses
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
11 févr. 2011 à 21:01
11 févr. 2011 à 21:01
Oui et une belle d'idée !! :-)
Là tout va bien, tu définis un objet Voyage nommé trajet, qui comportera 2 voyageurs si je ne m'abuse.
Enfin tout va bien, pour le moment :-)
Si on regarde ce que fait ta classe voyage, notamment ton constructeur
Il ne fait que dire que le tableau
Ne sera composé que de 2 éléments.
SAUF que par la suite, tu n'a ajouté aucun élément à ton tableau. Il est juste déclaré avec comme taille 2, et c'est tout.
Comme tu n'as pas ajouté d'objet de type Personne dans ton tableau, les objets composant le tableau sont donc tous NULL.
Donc, il est normal que quand tu tentes de récupérer l'objet personne avec l'ID passé en paramètre, tu ne récupères que NULL, et donc une exception Java.
C'est compréhensible?
int nombre = 2; // à la base, je le récupère au clavier, mais c'est pour simplifier les choses Voyage trajet = new Voyage(nombre);
Là tout va bien, tu définis un objet Voyage nommé trajet, qui comportera 2 voyageurs si je ne m'abuse.
Enfin tout va bien, pour le moment :-)
Si on regarde ce que fait ta classe voyage, notamment ton constructeur
public Voyage(int nombre)
Il ne fait que dire que le tableau
private Personne voyageur[];
Ne sera composé que de 2 éléments.
SAUF que par la suite, tu n'a ajouté aucun élément à ton tableau. Il est juste déclaré avec comme taille 2, et c'est tout.
Comme tu n'as pas ajouté d'objet de type Personne dans ton tableau, les objets composant le tableau sont donc tous NULL.
Donc, il est normal que quand tu tentes de récupérer l'objet personne avec l'ID passé en paramètre, tu ne récupères que NULL, et donc une exception Java.
C'est compréhensible?
Suis-je bête ! J'ai complètement oublié ce détail, alors qu'il est évident !
J'ai donc modifié mes constructeurs :
et
Ce doit être le début des vacances qui me fait ça ^^
Merci beaucoup pour ton aide (et ta sympathie ;)) !
J'ai donc modifié mes constructeurs :
public Voyage() { voyageur = new Personne[1]; voyageur[0] = new Personne_en_ligne(); }
et
public Voyage(int nombre) { voyageur = new Personne[nombre]; for (int i = 0 ; i < nombre ; i++) { voyageur[i] = new Personne_en_ligne(); } }
Ce doit être le début des vacances qui me fait ça ^^
Merci beaucoup pour ton aide (et ta sympathie ;)) !