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