Czy ==
mogę używać na wyliczeniach w Javie, czy muszę używać .equals()
? W moich testach ==
zawsze działa, ale nie jestem pewien, czy to gwarantuje. W szczególności nie ma .clone()
metody na wyliczeniu, więc nie wiem, czy można uzyskać wyliczenie, dla którego zwróciłoby .equals()
inną wartość niż ==
.
Na przykład, czy to jest w porządku:
public int round(RoundingMode roundingMode) {
if(roundingMode == RoundingMode.HALF_UP) {
//do something
} else if (roundingMode == RoundingMode.HALF_EVEN) {
//do something
}
//etc
}
Czy też muszę napisać to w ten sposób:
public int round(RoundingMode roundingMode) {
if(roundingMode.equals(RoundingMode.HALF_UP)) {
//do something
} else if (roundingMode.equals(RoundingMode.HALF_EVEN)) {
//do something
}
//etc
}