O que são enumerations (enums) e como usá-las?
Em Java, enums (enumerations) são um tipo especial de classe que representa um conjunto fixo de constantes nomeadas. Eles são ideais para representar estados, tipos ou categorias.
1. Definição básica de um enum
public enum DiaSemana {
SEGUNDA, TERCA, QUARTA, QUINTA, SEXTA, SABADO, DOMINGO;
}
Os valores de um enum são constantes e, por convenção, são escritos em letras maiúsculas.
2. Utilizando enums em Java
public class TesteEnum {
public static void main(String[] args) {
DiaSemana hoje = DiaSemana.QUARTA;
System.out.println("Hoje é: " + hoje);
}
}
Saída:
Hoje é: QUARTA
3. Adicionando atributos e métodos em um enum
Enums podem conter atributos, métodos e construtores, tornando-se mais flexíveis.
public enum Nivel {
BAIXO(1), MEDIO(2), ALTO(3);
private int codigo;
Nivel(int codigo) {
this.codigo = codigo;
}
public int getCodigo() {
return codigo;
}
}
E podemos usá-lo assim:
public class TesteNivel {
public static void main(String[] args) {
Nivel n = Nivel.ALTO;
System.out.println("Nível: " + n + ", Código: " + n.getCodigo());
}
}
Saída:
Nível: ALTO, Código: 3
4. Iterando sobre um enum
Podemos percorrer os valores de um enum usando values()
:
for (DiaSemana dia : DiaSemana.values()) {
System.out.println(dia);
}
5. Comparando enums
Enums podem ser comparados com ==
ou com equals()
:
if (hoje == DiaSemana.QUARTA) {
System.out.println("Hoje é quarta-feira!");
}
Quando usar enums?
- Quando temos um conjunto fixo de valores conhecidos.
- Para representar estados de um objeto (
ATIVO
,INATIVO
,PENDENTE
). - Para substituir constantes (
public static final
), tornando o código mais legível.
Conclusão
Enums são poderosos e úteis para representar conjuntos fixos de valores de maneira segura e organizada. Eles ajudam a evitar erros ao restringir o uso de valores inválidos e melhoram a clareza do código.
Por que usar enums em Java é uma boa prática?
O uso de enums é uma prática comum para organizar códigos mais limpos e seguros. Ao invés de definir constantes numéricas para representar estados, o uso de enums torna o código mais intuitivo e evita valores inválidos. Em frameworks como Spring e Hibernate, enums são amplamente utilizados para representar configurações, status de processos e categorias de entidades no banco de dados. Além disso, eles garantem que apenas valores permitidos sejam utilizados, evitando erros comuns em comparação com o uso de números inteiros ou strings.
Algumas aplicações:
- Definição de estados de um objeto (ATIVO, INATIVO, PENDENTE)
- Representação de dias da semana, meses do ano ou níveis de acesso
- Uso em sistemas que requerem um conjunto fixo de valores
- Melhoria da legibilidade e manutenção do código
Dicas para quem está começando
- Sempre escreva os nomes dos enums em letras maiúsculas
- Use
values()
para iterar sobre os valores do enum - Se precisar de um código associado ao enum, crie um atributo e um método
get()
- Enums são comparados corretamente usando
==
, pois são instâncias únicas - Evite armazenar enums no banco como
String
, prefira armazenar seus códigos
Contribuições de Eduardo Martins