Maroc789
Messages postés7Date d'inscriptionmercredi 2 avril 2014StatutMembreDernière intervention17 avril 2014
-
7 avril 2014 à 17:07
KX
Messages postés16734Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention24 avril 2024
-
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és16734Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention24 avril 2024127 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) {