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

JSF Java Discussion :

Aide JavaNullPointerException avec pieChart


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut Aide JavaNullPointerException avec pieChart
    Bonsoir,

    Je suis entrain de tester un exemple sur le piechart avec ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h:form>
    			<p:pieChart id="sample" value="#{adminCtr.pieModel}" 
               title = "Mans and Womans" />
    						</h:form>
    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
    public PieChartModel getPieModel() {
     
    			listcandidat = candidatBuss.consulterCandidat();
    			int numberMans=0;
    			int numberWomans=0;
    			for(int i=0;i<listcandidat.size();i++){
    				if(listcandidat.get(i).getGenre().equals("Masculin"))
    					numberMans++;
    				else numberWomans++;
    			}
    			pieModel = new PieChartModel();
    			pieModel.set("Mans", numberMans);
    			pieModel.set("Womans", numberWomans);
    			return pieModel;
    		}

    et j'ai eu un javanullpointerException sur if(listcandidat.get(i).getGenre().equals("Masculin"))?

    Est-ce-que vous savez pourquoi s'il vous plait?

    Merci

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Une NullPointerException veut dire que tu essayes d'appeler une méthode sur une référence null, qui ne pointe donc sur aucun d'objet.

    Donc dans ta ligne, tu as l'un des éléments suivant qui est null (ça ne peut pas être listCandidat sinon tu aurais l'exception sur la condition du for) :

    • listcandidat.get(i)
    • listcandidat.get(i).getGenre()


    A toi de déterminer lequel...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    oui j'ai trouvé au fait c'est une ligne dans ma base qui était null pour la colonne genre.

    Mais si je veux que dans ma ligne que ma colonne soit parfois null, comment je pourrais écrire ça ?

    Merci

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Tu veux dire que tu ne veux pas que ton code plante lorsque genre est null ?

    il te suffit de considérer ce cas, comme n'importe quel autre : du coup, tu vas avoir trois valeurs : "Masculin", "Féminin" (je suppose) et null. Pour éviter le null pointer exception, tu peux inverser la condtiion de test de la chaîne :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    String genre = listcandidat.get(i).getGenre();
    if ( "masculin".equals(genre) ) { // ici "masculin" n'étant forcément pas null, tu n'auras jamais de NullPointerException, et ce sera forcément false si genre est null, puisque null n'est pas égal à "Masculin"
       numberMans++;
    } else if ( "Feminin".equals(genre) ) {
       numberWomans++;
    } else {
       // a toi de voir comment tu gères les cas de candidat sans genre...
    }
    Autre approche : éliminer au plus tôt les cas d'exception, comme le null :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    String genre = listcandidat.get(i).getGenre();
    if ( genre==null ) {
     
        // traiter ce cas...
     
    }
    else {
     
       // maintenant tu peux faire le test que tu faisais, tu peux être sûr ne plus avoir l'exception, 
       if(genre.equals("Masculin"))
    					numberMans++;
    				else numberWomans++;
     
    }

    Afin, d'éviter les problèmes de syntaxe, de majuscule, minuscule, d'accent, etc dans des valeurs comme Masculin et Féminin, je te conseillerais d'utiliser si possible une énumération (enum) plutôt que des chaînes de caractères.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    Merci

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

Discussions similaires

  1. Aide requète avec jointure
    Par StanmaD dans le forum Requêtes
    Réponses: 2
    Dernier message: 04/11/2006, 23h55
  2. besoin aide bouton avec effet zoom fonctionne pas.
    Par zicomoun dans le forum Flash
    Réponses: 3
    Dernier message: 13/06/2006, 08h15
  3. Aide: Problème avec la taille de mon fichier
    Par ATTIA dans le forum Langage
    Réponses: 6
    Dernier message: 15/03/2006, 10h19
  4. de l'aide, problème avec lecteur CD/graveur
    Par princetn dans le forum Périphériques
    Réponses: 2
    Dernier message: 18/02/2006, 06h37
  5. besoin d'aide fonction avec fichier (debutant)
    Par boby61 dans le forum Débuter
    Réponses: 9
    Dernier message: 14/03/2005, 11h22

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