Por que e quando usar enum em Java?

Em Java, um enum é um tipo de dados especial que representa um conjunto fixo de valores constantes. Ele é uma forma conveniente de organizar e representar um conjunto de constantes relacionadas.

Há várias situações em que usar enums é recomendado. Alguns exemplos comuns são:

  1. Quando você tem um conjunto limitado de opções válidas: Por exemplo, digamos que você esteja desenvolvendo um sistema de gerenciamento de uma biblioteca e precisa representar o estado de um livro (lido, emprestado, disponível, etc). Usar um enum permite definir todas as opções válidas e evitar erros de digitação. Sempre que um novo estado for necessário, basta adicionar uma nova constante ao enum.
public enum EstadoLivro {
  LIDO,
  EMPRESTADO,
  DISPONIVEL
}
  1. Quando você precisa de um conjunto limitado de valores constantes: Suponha que você esteja desenvolvendo um jogo de cartas e precisa representar os diferentes naipes das cartas (copas, ouros, espadas e paus). Usar um enum permite definir esses valores de forma clara e fácil de entender.
public enum Naipe {
  COPAS,
  OUROS,
  ESPADAS,
  PAUS
}
  1. Quando você deseja associar dados a cada valor constante: Os enums em Java podem ter campos, construtores e métodos. Isso torna possível anexar informações extras a cada valor constante. Por exemplo, você pode usar enum para definir as cores primárias (vermelho, azul e amarelo) e associar a cada uma um código RGB correspondente.
public enum Cor {
  VERMELHO("#FF0000"),
  AZUL("#0000FF"),
  AMARELO("#FFFF00");

  private String codigoRGB;

  private Cor(String codigoRGB) {
    this.codigoRGB = codigoRGB;
  }

  public String getCodigoRGB() {
    return codigoRGB;
  }
}

Usar enums em vez de constantes literais ou variáveis separadas traz vários benefícios, como maior legibilidade, melhor segurança de tipo e a possibilidade de tornar o código mais fácil de manter e expandir.