Puis-je utiliser des ==
énumérations en Java ou dois-je utiliser .equals()
? Dans mes tests, cela ==
fonctionne toujours, mais je ne suis pas sûr que j'en soit garanti. En particulier, il n'y a pas de .clone()
méthode sur une enum, donc je ne sais pas s'il est possible d'obtenir une enum pour laquelle .equals()
retournerait une valeur différente de ==
.
Par exemple, est-ce OK:
public int round(RoundingMode roundingMode) {
if(roundingMode == RoundingMode.HALF_UP) {
//do something
} else if (roundingMode == RoundingMode.HALF_EVEN) {
//do something
}
//etc
}
Ou dois-je l'écrire de cette façon:
public int round(RoundingMode roundingMode) {
if(roundingMode.equals(RoundingMode.HALF_UP)) {
//do something
} else if (roundingMode.equals(RoundingMode.HALF_EVEN)) {
//do something
}
//etc
}