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

Java Discussion :

[Exception] java .lang.NullPointerException


Sujet :

Java

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut [Exception] java .lang.NullPointerException
    Bonjour,

    J'ai une erreur assez basique en soit mais je ne trouve pas d'où vient le problème u_u
    J'ai consulté mon ami Google, la FAQ et la fontion rechercher... Si quelqu'un trouve une erreur de lecture sur un objet null il me le dit mais là je suis complètement perdue.

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    package nutrical;
    
    import java.util.ArrayList;
    import java.io.*;
    
    public class Main{
    
                public static void main(String[] args) throws IOException, ClassNotFoundException {
                    ArrayList<Aliment> desAliments = new ArrayList<Aliment>();
                    /*Aliment09*/desAliments.add(new Aliment("Pâtes (cuites)",false,90,"Féculent"));
                    /*Aliment14*/desAliments.add(new Aliment("Oeuf de poule (55g)",true,77,"Oeuf"));
                    /*Aliment15*/desAliments.add(new Aliment("Lardons",false,290,"Viande"));
                    /*Aliment16*/desAliments.add(new Aliment("Surimi",false,113,"Poisson"));
                    /*Aliment17*/desAliments.add(new Aliment("Mayonnaise",false,720,"Sauce"));
                    /*Aliment18*/desAliments.add(new Aliment("Gruyère",false,392,"Fromage"));
                    /*Aliment19*/desAliments.add(new Aliment("Baba au rhum",true,324,"Dessert"));
                    /*Aliment20*/desAliments.add(new Aliment("Eau Vittel",false,0,"Boisson"));
                    
                    ArrayList<Plat> desPlats = new ArrayList<Plat>();
                    /*Plat00*/desPlats.add(new Plat("Entrée"));
                    /*Plat01*/desPlats.add(new Plat("Plat de résistance"));
                    /*Plat02*/desPlats.add(new Plat("Fromage"));
                    /*Plat03*/desPlats.add(new Plat("Dessert"));
                    /*Plat04*/desPlats.add(new Plat("Boisson"));
                    
                    ArrayList<Constituer> desConstitutions = new ArrayList<Constituer>();
                    /*Constituer00*/desConstitutions.add(new Constituer(desPlats.get(0),desAliments.get(16),50)); //Entrée Surimi
                    /*Constituer01*/desConstitutions.add(new Constituer(desPlats.get(0),desAliments.get(17),15)); //Entrée Mayonnaise
                    /*Constituer02*/desConstitutions.add(new Constituer(desPlats.get(1),desAliments.get(9),100)); //Plat de résistance Pâtes
                    /*Constituer03*/desConstitutions.add(new Constituer(desPlats.get(1),desAliments.get(15),30)); //Plat de résistance Lardons
                    /*Constituer04*/desConstitutions.add(new Constituer(desPlats.get(1),desAliments.get(14),1));  //Plat de résistance Oeuf
                    /*Constituer05*/desConstitutions.add(new Constituer(desPlats.get(2),desAliments.get(18),30)); //Fromage Gruyère
                    /*Constituer06*/desConstitutions.add(new Constituer(desPlats.get(3),desAliments.get(19),1));  //Dessert Baba au Rhum
                    /*Constituer07*/desConstitutions.add(new Constituer(desPlats.get(4),desAliments.get(20),20)); //Boisson Vitel
                    
                    desPlats.get(0).addUneConstitution(desConstitutions.get(0)); 
                    desPlats.get(0).addUneConstitution(desConstitutions.get(1));  //Entrée Surimi Mayonnaise
                    desPlats.get(1).addUneConstitution(desConstitutions.get(2));
                    desPlats.get(1).addUneConstitution(desConstitutions.get(3));
                    desPlats.get(1).addUneConstitution(desConstitutions.get(4));  //Plat de résistance Pâtes Lardon Oeuf
                    desPlats.get(2).addUneConstitution(desConstitutions.get(5));  //Fromage Gruyère
                    desPlats.get(3).addUneConstitution(desConstitutions.get(6));  //Dessert Baba au rhum
                    desPlats.get(4).addUneConstitution(desConstitutions.get(7));  //Boisson Vitel
                    
                    ArrayList<Repas> desRepas = new ArrayList<Repas>();
                    /*Repas00*/desRepas.add(new Repas("21/05/2008","Déjeuner"));
              
                    desRepas.get(0).addUnIRepas(desPlats.get(0));
                    desRepas.get(0).addUnIRepas(desPlats.get(1));
                    desRepas.get(0).addUnIRepas(desPlats.get(2));
                    desRepas.get(0).addUnIRepas(desPlats.get(3));
                    desRepas.get(0).addUnIRepas(desPlats.get(4));  //Déjeuner 
                    
                    ArrayList<Personne> desPersonnes = new ArrayList<Personne>();
                    /*Personne00*/desPersonnes.add(new Personne("Nyna"));
                    desPersonnes.get(0).addUnIRepas(desRepas.get(0));//ligne83 de mon main
                }
    }
    l'erreur que j'obtiens :
    Exception in thread "main" java.lang.NullPointerException
    at nutrical.Personne.addUnIRepas(Personne.java:24)
    at nutrical.Main.main(Main.java:83)
    Java Result: 1
    et mon code pour Personne.addUnIRepas est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
            public void addUnIRepas(IRepas unIRepas){
                    this.sesIRepas.add(unIRepas);
            }
    Cependant, il est tout à fait correct... Et l'ajout d'un IRepas devrait se faire sans problème >.<

    Une idée de l'erreur?

    度もありがとう //Merci Beaucoup
    *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
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    "sesIRepas" est probablement null ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Je pense pareil, il faudrait voir le code de Personne pour en être sûr.
    En fait ça ne peut être que ça vu la ligne où est l'erreur.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 80
    Par défaut
    Yo !

    A mon avis tu as oublié dans la classe Personne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sesIRepas = new ArrayList();

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    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
    24
    25
    26
    27
     
    package nutrical;
     
    import java.util.ArrayList;
     
    public class Personne implements java.io.Serializable {
    //Proprietes
     
    	private String nom;
    	private ArrayList<IRepas> sesIRepas;
    //Constructeur
     
    	public Personne(String unNom){
    		this.nom = unNom;
    	}
    //Accesseur
     
    	public String getNom(){
    		return this.nom;
    	}
    	public ArrayList<IRepas> getSesIRepas(){
    		return this.sesIRepas;
    	}
            public void addUnIRepas(IRepas unIRepas){
                    this.sesIRepas.add(unIRepas);
            }
    }
    "sesIRepas" est probablement null ?
    On s'en fiche non?
    Il faut bien commencer à remplir la propriété ArrayList à un moment ^^
    Je veux faire un add sur cet Array qui est encor vierge... normalement il doit accepter T.T
    *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 confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 80
    Par défaut
    tant que tu ne fais pas de new, ta réference pointe vers rien, donc tu ne sais ajouter quelque chose dans rien.

  7. #7
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    On s'en fiche non?
    Il faut bien commencer à remplir la propriété ArrayList à un moment ^^
    Je veux faire un add sur cet Array qui est encor vierge... normalement il doit accepter T.T
    Justement non, il n'est pas vierge, mais null, il faut commencer par instancier la liste avant de pouvoir ajouter des éléments.
    C'est une erreur classique qui se produit également avec les tableaux

  8. #8
    Membre expérimenté
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Par défaut
    il faut initialiser ton ArrayList dans ton constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private ArrayList<IRepas> sesIRepas;
    ...
    //Constructeur
     
    	public Personne(String unNom){
    		this.nom = unNom;
                    sesIRepas = new ArrayList<IRepas>()
    	}

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    ho la belle boulette...
    Je viens de comprendre ce que vous vouliez dire u_u


    Vivement lundi soir que je puisse aller me coucher enfin...
    Merci beaucoup pour votre aide *o*
    *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.

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

Discussions similaires

  1. Exception "java.lang.NullPointerException"
    Par lamia89 dans le forum Java EE
    Réponses: 16
    Dernier message: 28/11/2012, 00h32
  2. Exception java.lang.NullPointerException sans cause
    Par saraInfoSab dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 18/04/2012, 10h54
  3. une exception java.lang.NullPointerException
    Par marwa21 dans le forum Struts 1
    Réponses: 8
    Dernier message: 22/07/2010, 12h49
  4. Exception : java.lang.NullPointerException
    Par parano dans le forum Langage
    Réponses: 4
    Dernier message: 05/07/2007, 20h27
  5. Erreur exception java.lang.NullPointerException
    Par geol99 dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2007, 20h24

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