1
resposta

Enum com código e descrição

Ola, ví que existe uma forma de usar o enum direto, sem precisar tranformar ele em uma entidade e usando o cod como id, gostaria de saber qual a melhor prática, e por que escolher uma forma, segue o código:

public enum Categoria {

CELULAR(1, "Celular"),
INFORMATICA(2, "Informática"),
LIVROS(3, "Livros");

private Integer cod;

private String nome;

private Categoria(Integer cod, String nome) {
    this.cod = cod;
    this.nome = nome;
}

public Integer getCod() {
    return cod;
}

public void setCod(Integer cod) {
    this.cod = cod;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public static Categoria toEnum(Integer cod) {
    if(cod == null) {
        return null;
    }
    for(Categoria x : Categoria.values() ) {
        if(x.getCod() == cod) {
            return x;
        }
    }throw new IllegalArgumentException("Categoria inválida, cod: " + cod);    
}

}

1 resposta

Oi Manoel,

No curso vimos as duas situações, quando a categoria é uma mera informação fixa, podendo ser um enum e não havendo a necessidade de transformar em uma classe entidade, mas depois mudamos, pois a ideia seria ter categorias dinâmincas, na qual os usuários do sistema poderiam listar/cadastrar/alterar/excluir, e nesse caso é necessário transformar em uma classe entidade, pois sendo um enum ficaria fixo no código.

Ou seja, vai depender de cada cenário para determinar se pode ser um simples enum ou se será necessário utilizar uma classe entidade.

Bons estudos!