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 :

Null Pointer Exception


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 133
    Points : 71
    Points
    71
    Par défaut Null Pointer Exception
    Bonjour tout le monde,

    J'ai un petit soucie avec un accesseur générique objet, je lui passe plusieur valeurs mais j'ai un NullPointerException,

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for (int i=0;i<lgr;i++)
    {
        IFO.set(varTempTab[i], "x");
    }
    Et voici mon accesseur générique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public Object set(String attributeName, String value) {
    return attributes.put(attributeName, value);
    }
    J'ai vérifié que dans ma varible il y avait bien une valeur...

    Est-ce que quelqu'un voit mon erreur.

    Merci d'avance

  2. #2
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Passes en mode debug, et vérifie si dans ton tableau varTempTab, pour les valeurs allant de 0 à lgr, tu n'as pas des null qui se baladeraient.

  3. #3
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 795
    Points : 1 270
    Points
    1 270
    Par défaut
    A mon avis c'est ton attributes qui est null
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (attributes != null)
        return attributes.put(attributeName, value);
    else
        return null;

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 133
    Points : 71
    Points
    71
    Par défaut
    J'ai aucune valeur vide car si je fais dans la boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println("valeurs "+varTempTab[i]);
    j'ai toutes mes valeurs, c'est seulement quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IFO.set(varTempTab[i], "x");
    que j'ai un problème...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 133
    Points : 71
    Points
    71
    Par défaut
    Merci Anikinisan, j'ai plus aucune d'erreur, mais je ne comprend toujours pas car mon attriubut n'était pas vide vue que je pouvais les afficher...

  6. #6
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Citation Envoyé par djorfe Voir le message
    Merci Anikinisan, j'ai plus d'erreur, mais je ne comprend toujours pas car mon attriubut n'était pas vide vue que je pouvais les afficher...
    Quel est le type de attributes ? parce que la solution de Anikinisan ne va peut etre pas forcement résoudre ton problème. Il est fortement probable que ton problème est plus sur un oubli d'instanciation de "attributes" ce qui implique que dans ton set, attributes est null donc quand tu essayes de faire : null.put(String,String) ==> NullPointerException

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 133
    Points : 71
    Points
    71
    Par défaut
    C'est surment là le problème,actuellement j'ai pas d'erreur mais j'ai encord pas de valeur dans mon attribut.

    Que veux tu dir par instanciation d'attribut?

  8. #8
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 795
    Points : 1 270
    Points
    1 270
    Par défaut
    Le code que je t'ai donné évite simplement que l'exception soit levée.
    En fait, au moment où tu executais cette instruction "return attributes.put(attributeName, value);" la valeur de "attributes" était nulle !
    et donc le attributes.put(); lève une exception quelque soit la valeur des parametres (ici "attributeName" et "value").
    Il faut donc créer ton objet "attributes" avant de faire "IFO.set(varTempTab[i], "x");"

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 133
    Points : 71
    Points
    71
    Par défaut
    voicie le code de mon accesseur génèrique:
    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
     
    public class InfoMaster{
     
     
    	private Map<String, String> attributes;
     
    	public InfoMaster() {
    		super();
    	}
     
    	public InfoMaster( String parent_id, String ilan,
    	this.attributes = new HashMap<String, String>();
    	}
     
    			public Object get(String attributeName) {
    				return attributes.get(attributeName);
    			}
     
    			public Object set(String attributeName, String value) {
    				if (attributes != null)
    				    return attributes.put(attributeName, value);
    				else
    				    return null;
    			}
     
     
     
    }
    Je ne comprend pas trop car je crée bien mon attribut.

  10. #10
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    A priori, si ton code est conforme à ce que tu nous montres, ta Map sera bien instanciée dans le cas de l'appel de ton constructeur avec argument InfoMaster( String parent_id, String ilan). Mais pas dans ton construteur InfoMaster().

Discussions similaires

  1. Tomcat 5.5 Null Pointer Exception
    Par nono44200 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 07/04/2007, 10h00
  2. Null pointer Exception pour ma Fenetre
    Par LeXo dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 22/01/2007, 09h17
  3. Null Pointer Exception
    Par gloglo dans le forum Langage
    Réponses: 4
    Dernier message: 20/12/2006, 11h32
  4. [Struts] Null Pointer Exception
    Par n@n¤u dans le forum Struts 1
    Réponses: 1
    Dernier message: 01/08/2006, 13h10
  5. Null Pointer Exception
    Par snouppy dans le forum JBuilder
    Réponses: 3
    Dernier message: 13/06/2006, 21h53

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