Можно ли использовать ==
в перечислениях в 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
}