¿Está bien utilizar ==
en enumeraciones en Java, o necesito usar .equals()
? En mi prueba, ==
siempre funciona, pero no estoy seguro de si estoy seguro de eso. En particular, no hay un método .clone()
en una enumeración, por lo que no sé si es posible obtener una enumeración para la cual .equals()
devolvería un valor diferente de ==
.¿Está bien usar == en enumeraciones en Java?
Por ejemplo, ¿Está bien:
public int round(RoundingMode roundingMode) {
if(roundingMode == RoundingMode.HALF_UP) {
//do something
} else if (roundingMode == RoundingMode.HALF_EVEN) {
//do something
}
//etc
}
o tengo que escribir de esta manera:
public int round(RoundingMode roundingMode) {
if(roundingMode.equals(RoundingMode.HALF_UP)) {
//do something
} else if (roundingMode.equals(RoundingMode.HALF_EVEN)) {
//do something
}
//etc
}
posible duplicado de [Comparando los miembros de enumeración de Java:? == o iguales()] (http://stackoverflow.com/questions/1750435/comparing-java-enum-members -o iguales) – assylias
@assylias esta pregunta fue lo primero. Quizás sea una bandera para ♦ atención, ya que no estoy seguro de si los dos deberían fusionarse. –
@MattBall Creo que la respuesta a su pregunta que cita el JLS es la mejor respuesta, y es por eso que elegí cerrar esta. – assylias