Можно ли использовать ==
для перечислений на Java, или мне нужно использовать .equals()
? В моем тестировании ==
всегда работает, но я не уверен, что мне это гарантировано. В частности, на перечислении нет метода .clone()
, поэтому я не знаю, можно ли получить перечисление, для которого .equals()
будет возвращать другое значение, чем ==
.
Например, это ОК:
public int round(RoundingMode roundingMode) {
if(roundingMode == RoundingMode.HALF_UP) {
//do something
} else if (roundingMode == RoundingMode.HALF_EVEN) {
//do something
}
//etc
}
Или мне нужно написать его так:
public int round(RoundingMode roundingMode) {
if(roundingMode.equals(RoundingMode.HALF_UP)) {
//do something
} else if (roundingMode.equals(RoundingMode.HALF_EVEN)) {
//do something
}
//etc
}