Comparação de enum em Java: usar == ou equals()?
Olá a todos! Comecei a estudar Java recentemente e me deparei com uma questão sobre enum. Quando comparo duas variáveis do tipo enum, vejo que posso usar tanto o operador == quanto o método equals(). Ambas as opções funcionam no meu código, mas não entendo qual é a correta e por quê.
Aqui está um exemplo 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;
// Comparação com ==
System.out.println(c1 == c2); // true
System.out.println(c1 == c3); // false
// Comparação com equals()
System.out.println(c1.equals(c2)); // true
System.out.println(c1.equals(c3)); // false
}
}
```
Ambas as formas dão o mesmo resultado. Mas ouvi dizer que para objetos geralmente se deve usar equals(), enquanto == compara referências. No entanto, enum se comporta de forma diferente.