Dúvida - Enum

2 respostas
Z

Eu queria saber como que faço o seguinte com uma classe enum por exemplo como a que segue abaixo:

public enum AvaliacaoInterna {

PESSIMO(1, Péssimo),

RUIM(2, Ruim),

REGULAR(3, Regular),

BOM(4, Bom),

OTIMO(5, “Ótimo);
private final int value;
private final String name;

AvaliacaoInterna(int value, String name) {
    this.value = value;
    this.name = name;
}

public int getValue() {
    return value;
}

public String toString() {
    return name;
}

}

Ta salvando o numero da enum no banco de dados certinho, so que eu gostaria de saber como que faço por exemplo na hora da consulta ou na alteração, quando for recuperar o numero voltar o enum correspondente a este numero para preencher o combo, tem algum método especifico ???

2 Respostas

rmarin

Você pode fazer isso:

AvaliacaoInterna ai = AvaliacaoInterna.values()[index]; // index deve conter o int que você gravou no banco.

Mas o melhor mesmo seria você gravar a String que representa aquela enum, deste modo você pega a referencia pelo valueOf(String);.
Utilizando o ordinal, se um dia você inserir um novo valor, ou alterar a ordem da enum, você perderá as referencias no banco de dados. Sacou? :thumbup:

Z

Valeu, vou testar e acho que vou usar o valueOf mesmo…

Criado 17 de setembro de 2007
Ultima resposta 17 de set. de 2007
Respostas 2
Participantes 2