Avatar ·

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.