IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

java lang NullPointerException


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut java lang NullPointerException
    Bonsoir,

    Une erreur toute bête et pourtant...

    J'ai deux classes que l'on retrouve dans des ArrayList.

    La classe Avion et la classe Vol.

    A savoir qu'un avion peut réaliser plusieurs vols, en ce sens, j'ai une collection de Vol dans avion.

    Aussi, je souhaite pouvoir ajouter des vols à cette collection... Mais mon raisonnement me conduit à un NullPointerException...

    Voici des extraits de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            /*0*/desAvions.add(new Avion("Airbus A340-300", 295, 129300, 55600, 100, 13000, 140640,140640));
            /*0*/desVols.add(new VolMilitaire(100,desAvions.get(0)));
            Vol unVol = desVols.get(0);
            Avion unAvion = desAvions.get(0);
     
            unAvion.addVol(unVol);
    Dans la classe Avion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
        private ArrayList<Vol> mesVols;
     
        public void addVol(Vol unVol)
        {
            mesVols.add(unVol);
        };
    Pourquoi ce dump d'erreur ?
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at trafficaerien.Avion.addVol(Avion.java:141)
    at trafficaerien.i_trafficAerien.initialiser(i_trafficAerien.java:165)
    at trafficaerien.i_trafficAerien.initComponents(i_trafficAerien.java:36)
    at trafficaerien.i_trafficAerien.<init>(i_trafficAerien.java:29)
    at trafficaerien.i_trafficAerien$2.run(i_trafficAerien.java:224)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  2. #2
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    As tu instancié tes listes ?

    Avec l'ensemble du code on y verrait plus clair

  3. #3
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Les instancier ?

    Hum... A quel endroit ?

    Dans le code du main oui mais pas dans les classes...

    Voici une archive

    et s'il faut un modèle conceptuel pour la représentation des données j'en ai un à dispo

    (merci)
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  4. #4
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Dans la classe Avion, tu n'as ni setter te permettant d'attribuer une valeur à "mesVols", ni initialisation.

    Tu peux, au choix, compléter ton code ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private ArrayList<Vol> mesVols = new ArrayList();
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
        /**
         * Constructeur de la classe
         * @param String marque Marque de l'avion
         * @param int capaciteDePersonnes Nombre de places passagers
         * @param int consommationEnVol Carburant consommé lors du trajet de l'avion
         * @param int altitudeMaximale Altitude maximale de couloir aérien pour l'avion
         * @param int volumeDuReservoir Volume de carburant du réservoir.
         */
      	public Avion(String marque, int capaciteDePersonnes, int masseAVide,
                int capaciteDeChargement, int consommationEnVol,
                int altitudeMaximale, int capaciteReservoir, int volumeDuReservoir)
    	{
            this.identifiant = ++compteurIdentifiant;
            this.marque = marque;
            this.capaciteDePersonnes = capaciteDePersonnes;
            this.masseAVide = masseAVide;
            this.capaciteDeChargement = capaciteDeChargement;
            this.consommationEnVol = consommationEnVol;
            this.altitudeMaximale = altitudeMaximale;
            this.capaciteReservoir = capaciteReservoir;
            this.volumeDuReservoir = volumeDuReservoir;
            this.mesVols = new ArrayList();
    	}
    au passage, utilises plutôt l'interface List pour type tes listes

    ex.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        private List<Vol> mesVols = new ArrayList();
     
        public List<Vol> getMesVols()
        {
            return this.mesVols;
        };

  5. #5
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Si ce n'est pas abuser, que m'apporte de plus l'interface List par rapport à la déclaration en ArrayList ?

    (je fais les modifications >.< )
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  6. #6
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    Si ce n'est pas abuser, que m'apporte de plus l'interface List par rapport à la déclaration en ArrayList ?

    (je fais les modifications >.< )
    Ca te permet de manipuler la liste en dehors de ta classe sans être lié à une quelconque implémentation, et donc de changer sans impact l'implémentation le jours ou tu te dis qu'une liste chaînée fais mieux l'affaire. Bonne lecture

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. java.lang.NullPointerException
    Par kamaldev dans le forum Struts 1
    Réponses: 12
    Dernier message: 28/06/2006, 19h45
  2. Probleme erreur java.lang.NullPointerException
    Par Tsukaasa dans le forum Langage
    Réponses: 4
    Dernier message: 25/05/2006, 18h19
  3. Réponses: 8
    Dernier message: 11/05/2006, 19h32
  4. [JDIC]Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Par kedare dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 06/05/2006, 22h45
  5. java.lang.NullPointerException getparent()
    Par guano dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 17/03/2006, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo