Java.lang.NullPointerException sur un attribut d'un objet statiq
Résolu
YoMan!
-
YoMan! Messages postés 3 Statut Membre -
YoMan! Messages postés 3 Statut Membre -
Bonjour,
Pour un projet de simulation de salon de coiffure, j'ai à créer des objets statiques de coiffeurs dans le moniteur auquel j'accède depuis les évènements pour changer leurs valeurs au cours de la simulation. Le problème c'est qu'en essayant d'accéder à la valeur d'un des attribut d'un coiffeur, j'ai eu droit à java.lang.NullPointerException.
Voici des extraits de mon code :
Voilà a quoi ressemble un peu mon code. Je peux pas tout copier mais n'hésitez pas à me poser des questions.
Merci d'avance pour votre aide !
PS: Petite précision, le debugger me signal que c'est pas seulement la valeur retournée par isSoonAvailable qui est nulle mais carrément nextAvaibility !!
Pour un projet de simulation de salon de coiffure, j'ai à créer des objets statiques de coiffeurs dans le moniteur auquel j'accède depuis les évènements pour changer leurs valeurs au cours de la simulation. Le problème c'est qu'en essayant d'accéder à la valeur d'un des attribut d'un coiffeur, j'ai eu droit à java.lang.NullPointerException.
Voici des extraits de mon code :
public class Coiffeur{ ... private LogicalDateTime nextAvailability = new LogicalDateTime("05/01/2015 09:00:00.0"); ... public boolean isSoonAvailable(LogicalDateTime start) { return nextAvailability.soustract(start).compareTo(LogicalDuration.ofMinutes(20)) <= 0; } } public class EventArriveeClient extends SimEvent{ //... public void Process(){ .... if(client.favori==Client.Favori.NONE){ if(Monitor.Lumpy.isSoonAvailable(start)) client.favori=Client.Favori.LUMPY; ..... ..... } } } public class Monitor { .... public static Coiffeur Lumpy = new Coiffeur("Lumpy"); .... .. main .. }
Voilà a quoi ressemble un peu mon code. Je peux pas tout copier mais n'hésitez pas à me poser des questions.
Merci d'avance pour votre aide !
PS: Petite précision, le debugger me signal que c'est pas seulement la valeur retournée par isSoonAvailable qui est nulle mais carrément nextAvaibility !!
A voir également:
- Java.lang.NullPointerException sur un attribut d'un objet statiq
- Identifier un objet à partir d'une photo - Guide
- Vente objet occasion entre particulier - Guide
- Mesurer un objet - Guide
- Objet interdit en cabine ryanair - Guide
- Attribut changer - Télécharger - Divers Utilitaires
1 réponse
Bonjour,
Avec ton code partiel on ne peut pas faire grand chose, tu dis que nextAvaibility est null, c'est donc que tu as changé sa valeur après sa création.
Remarque : lorsqu'une exception est levée, la trace de la pîle d'appel permet d'identifier sur quelles lignes de code ça plante, cette information est très utile pour corriger.
Avec ton code partiel on ne peut pas faire grand chose, tu dis que nextAvaibility est null, c'est donc que tu as changé sa valeur après sa création.
Remarque : lorsqu'une exception est levée, la trace de la pîle d'appel permet d'identifier sur quelles lignes de code ça plante, cette information est très utile pour corriger.
nextAvailability==null, dans ce cas ça veut dire qu'il a été modifié depuis son constructeur (ligne 3)
S'il est normal que nextAvailability puisse prendre la valeur null alors il faut faire un if pour tester ce cas afin de ne pas faire d'appel de méthodes derrière.
soustract(start)==null, je ne sais pas comment fonctionne la méthode soustract, mais il est possible qu'elle renvoie null, là aussi il faut tester le cas pour être complet.
Remarque : il faut généralement éviter ce que l'on appelle les "valeurs magiques" comme ton 20 ici.
Il vaut mieux mettre cette valeur dans une constante ou dans un paramètre, voir les deux.