Maroc789
Messages postés7Date d'inscriptionmercredi 2 avril 2014StatutMembreDernière intervention17 avril 2014
-
7 avril 2014 à 17:07
KX
Messages postés16702Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention 1 juin 2023
-
7 avril 2014 à 18:57
Bonjour, mon problème est le suivant, j'aimerais savoir s'il faut redéfinir la méthode equals pour comparer avec les Enum .
if (!terrains.get(coord).getTypeTerrain().equals(TypesTerrains.MER)) {
Dans ce code il affiche un NPE alors je voudrais savoir si cela vient de equals ou non.
Merci de votre compréhension.
KX
Messages postés16702Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention 1 juin 2023126 Modifié par KX le 7/04/2014 à 18:58
Bonjour,
Non, il n'est pas nécessaire de redéfinir equals, c'est même fortement déconseillé. En effet un enum peut se comparer avec == comme un entier, donc la seule implémentation logique de equals pour un enum c'est :
public boolean equals(Object obj) {
return this==obj;
}
C'est évidemment celle-ci qui est implémentée par défaut.
Pour ton problème, il suffit de décomposer ton traitement et voir sur quelle ligne l'exception apparaît.
c = terrains.get(coord);// NPE sur terrains, éventuellement sur coord
t = c.getTypeTerrain(); // NPE sur c
if (t != TypesTerrains.MER) {