Comparación de enum en Java: ¿usar == o equals()?
¡Hola a todos! Empecé a estudiar Java no hace mucho y me encontré con una pregunta sobre enum. Cuando comparo dos variables de tipo enum, veo que puedo usar tanto el operador == como el método equals(). Ambas opciones funcionan en mi código, pero no entiendo cuál es la correcta y por qué.
Aquí hay un ejemplo de código que me confunde:
```java
public enum Color {
RED, GREEN, BLUE
}
public class Main {
public static void main(String[] args) {
Color c1 = Color.RED;
Color c2 = Color.RED;
Color c3 = Color.GREEN;
// Comparación con ==
System.out.println(c1 == c2); // true
System.out.println(c1 == c3); // false
// Comparación con equals()
System.out.println(c1.equals(c2)); // true
System.out.println(c1.equals(c3)); // false
}
}
```
Ambas formas dan el mismo resultado. Pero he oído que para objetos normalmente se debe usar equals(), mientras que == compara referencias. Sin embargo, enum se comporta de manera diferente.