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

Langage Java Discussion :

[debutant] NullPointerException java


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Par défaut [debutant] NullPointerException java
    Bonjour,
    j'ai une NullPointerException que j'arrive pas à résoudre
    Auriez-vous une explication?
    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
     
    classe Maclasse1
    {....
     
    //méthode
    public test() {
    for (int i = 0; i < mot.getClientsCount(); i++) {....}
    }
    //"mot" est une instance d'une autre classe "MaClasse2"  qui contient la //méthode "getClientsCount" (je veux qu'elle me retourne le nombre total de //clients):
     
     public  int getClientsCount()
         {
          int TotalClients = 0;
          for (int[]dataLine : data )
          {
           if (dataLine[0] == Client) {
         for (int i=0; i < dataLine.length; i++)
             { TotalClients = dataLine[i];
             }
            }
             }
     
          return TotalClients;
         }
    data est "data = new int [items.size()][5];" que je crée à partir d'une méthode ParseFile (BuffereReader...) dans "MaClasse2"
    Dans la méthode du parse j'utilise cette boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    List<String> items = new ArrayList<String>();
    for (String item : items) {
         splitter = new StringTokenizer(item, " " );
          int Client = Integer.parseInt(splitter.nextToken());;
         int Article = Integer.parseInt(splitter.nextToken());
         int Prix = Integer.parseInt(splitter.nextToken());
     while (splitter.hasMoreTokens())
    		   {items.add(item);}
    }

    Merci.

  2. #2
    Membre expérimenté
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Par défaut
    tu peux ajouter le stack trace et utilise les balise code stp?

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Par défaut
    pour le code c'est bien les balises: <code> et </code>? je les ai mis mais ça ne marche pas..
    Concernant l'exception:
    "Exception in thread "main" java.lang.NullPointerException"
    ça concerne les lignes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (int i = 0; i < mot.getClientsCount(); i++)
    .....dans la classe "MaClasse1"

    et le main de cette classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public static void main(String[] args) throws Exception {
      new MaClasse1();
    }

  4. #4
    Membre éprouvé
    Inscrit en
    Juin 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 125
    Par défaut
    Bonjour,
    ton "mot" doit être nul. Comment l'instancies-tu?

    PS : pour les balises code c'est "[CODE]".

  5. #5
    Membre éclairé Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Bonjour,

    Regarde ce que vaut mot.getClientsCount()
    et regarde ce que tu fais dans ta boucle for.
    Si tu essaye d'acceder a un objet dans un tableau qui est null tu as ta solution.

    Je ne sais pas comment tu code ni dans quel environnement mais si tu le peux utilise les points d'arrets et les fenetres qui te permettent de voir quels sont les valeurs de tes variables au fur et à mesure que ton programme se déroule. C'est assez simple alors de voir ce qui ne va pas.

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Par défaut
    Je suis sur l'environnement Eclipse.
    Si j'ai compris, cette exception est dûe à un objet null qq part.
    "mot" est une instance de la classe "MaClasse2" qui intègre une méthode pour la lecture d'un fichier et la récupération de ses éléments(ClientId,ArticleId,Prix)

    for (int i = 0; i < mot.getClientsCount(); i++)....
    dans cette boucle, j'essaie de récupérer le nombre total des clients (à partir du fichier parsé) pour faire certains calculs statistiques après dans MaClasse2.

    Moi j'ai mis simplement dans "MaClasse1":

    private MaClasse2 mot;
    comment je pourrais l'instancier?

Discussions similaires

  1. [Debutant] erreur "java.lang.NullPointerException" android
    Par Pif_Paf_Pouf dans le forum Android
    Réponses: 6
    Dernier message: 21/05/2014, 20h50
  2. [DEBUTANT][DTD][JAVA]déclaration d'une DTD ("file: ....
    Par The Wretched dans le forum Valider
    Réponses: 2
    Dernier message: 21/06/2005, 08h57
  3. [debutant]MySql & Java
    Par Stef784ever dans le forum JDBC
    Réponses: 4
    Dernier message: 16/06/2004, 12h49
  4. [debutant]Servlet java
    Par Regis.C dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 14/05/2004, 10h28
  5. [debutant] correspondance JAVA C++ pour pointeur de fonction
    Par davidoff_tls dans le forum Langage
    Réponses: 7
    Dernier message: 15/04/2004, 09h13

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