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

Collection et Stream Java Discussion :

syntaxe hashmap _ NullPointerException


Sujet :

Collection et Stream 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 syntaxe hashmap _ NullPointerException
    Bonjour,
    j'ai un problème avec la syntaxe du return à la fin de ce code.Quand j'exécute mon programme j'ai une NullPointerException qui est dûe à la ligne du return.
    j'ai l'impression que ça ne retourne pas vraimnt le prix de l'article en fonction des paramètres de la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public int getPriceValue(int userID, int articleID){
          HashMap ArticlesUsers = getArticles(userID);
          if (ArticlesUsers != null && ArticlesUsers.get(articleID) != null){
      return ((dSet)ArticlesUsers.get(articleID)).getPriceValue(userID,articleID);
     
          }
          return ((dSet)ArticlesUsers.get(articleID)).getPriceValue(userID,articleID);
      }
    Help!

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Je pense que ArticlesUsers.get(articleID) retourne null !

    La question est : que retournes-tu quand ArticlesUsers.get(articleID) vaut null ?

    Tu peux soit :

    - retourner une valeur par défaut (ex: 0).
    - lever une exception car ce n'est pas un comportement attendu.

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Par défaut
    j'avais une ligne aussi pour ce cas, je faisais "return 0".
    pour, ArticlesUsers.get(articleID), j'ai fait un test en appelant cette méthode dans mon main et ça m'affiche bien des résultats

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Il y a quelque chose que je ne comprends pas :

    Dans ((dSet)ArticlesUsers.get(articleID)).getPriceValue(userID,articleID), la méthode getPriceValue(userID,articleID) est la même que celle dont tu fournis le code source. La méthode s'appelle elle-même avec les mêmes paramètres ?

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Par défaut
    t'as bien raison, c'est la même méthode
    ça paraît pas très cohérent, sinon je peux faire comment si je veux récupérer le PriceValue?

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    En fait je ne vois pas trop bien ce que tu veux faire...

    Pourquoi quand tu fais getArticles(userID) tu ne renvoies pas plutôt une Collection d'objets de type Article ayant un atribut price ?

    Je suis peut-être à côté de la plaque mais tu pourrais dans ce cas faire quelque chose de simple comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int total = 0;
    Collection/*<Article>*/ articlesUser = getArticles(userID);
    for (Iterator it=articlesUser.iterator(); it.hasNext();)
    {
        Article article = (Article)it.next();
        total += article.getPrice();
    }
    Ou encore plus simple si tu es en Java 5 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int total = 0;
    for (Article article : getArticles(userID))
        total += article.getPrice();
    Quels types d'élements contient ta HashMap ArticlesUsers ? (clé/valeur)

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/04/2008, 15h14
  2. HashMap en multi-thread et NullPointerException ; comment est-ce possible ?
    Par sami44 dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 09/01/2008, 15h43
  3. [Syntaxe] Action simultanée sur plusieurs élements
    Par FranT dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2003, 20h20
  4. Syntaxe TASM <-> MASM
    Par LFC dans le forum Assembleur
    Réponses: 3
    Dernier message: 28/02/2003, 15h56
  5. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 15h33

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