Pourquoi le pointeur est nul
ciarawom
Messages postés
2
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour, voici le code de ma méthode, ici l'erreur c'est toujours java.lang.NullPointerException
at fr.emse.simulator.MyCell.getColor(MyCell.java:52)
et je ne comprends pas pourquoi il est nul?
public Color getColor(){
if (this.nature.type.equals("W")) {
return this.couleur=new Color(0,0,255);}
if (this.nature.type.equals("F"))
return this.couleur= new Color(0,255,28);
if (this.nature.type.equals("P"))
return this.couleur=new Color(7);
if (this.nature.type.equals("T"))
return this.couleur=new Color(0xff, 0xff, 0x00);
if (this.burned==true){
return this.couleur=new Color(80,80,80);}
return this.couleur;
}
at fr.emse.simulator.MyCell.getColor(MyCell.java:52)
et je ne comprends pas pourquoi il est nul?
public Color getColor(){
if (this.nature.type.equals("W")) {
return this.couleur=new Color(0,0,255);}
if (this.nature.type.equals("F"))
return this.couleur= new Color(0,255,28);
if (this.nature.type.equals("P"))
return this.couleur=new Color(7);
if (this.nature.type.equals("T"))
return this.couleur=new Color(0xff, 0xff, 0x00);
if (this.burned==true){
return this.couleur=new Color(80,80,80);}
return this.couleur;
}
2 réponses
-
Bonjour.
java est une source de problème sur les pc.
Vois ceci pour t'aider.
http://translate.google.be/...
Qui aime l'instruction ! trouve la connaissance qui vient de la réflexion !
PS. Créez souvent un point de restauration ! cela résout pas mal de problèmes. -
Généralement une référence est null parce que c'est la valeur par défaut puisque aucun objet ne lui est attribué. Cela se corrige en initialisant correctement les valeurs.
public Color getColor() { if (nature==null) throw new IllegalStateException("nature n'est pas initialisé"); if (nature.type==null) throw new IllegalStateException("nature.type n'est pas initialisé"); if (nature.type.equals("W")) couleur = new Color(0,0,255); else if (nature.type.equals("F")) couleur = new Color(0,255,28); else if (nature.type.equals("P")) couleur = new Color(7); else if (nature.type.equals("T")) couleur = new Color(0xff, 0xff, 0x00); else if (burned) couleur = new Color(80,80,80);} return couleur; }
Remarque : il est étonnant d'avoir un getteur qui modifie la valeur d'un attribut, d'autant plus conditionné par la valeur d'un deuxième attribut ! On s'attendrait plutôt à avoir seulement un "return couleur;" dans le getColor, ou alors de ne pas avoir du tout d'attribut "couleur", sa valeur étant uniquement décrite par nature.typeLa confiance n'exclut pas le contrôle