Enum

3 respostas
RDSILVA

Fala ai galera seguinte
Estou trabalhando com ENUM, não sei se é a maneira mas correta de se fazer isso, e estou fazendo o seguinte.
preciso colocar uns caras em uma determinada ordem para isso criei uns indices

public EnumExemplo(){

  EX_UM(0,"XXXXXX"),
  EX_DOIS(1,"GGGGG"),
  EX_TRES(2,"AAAAA");

  private int indice;
  private String descricao;

  EnumExemplo(int indice,String descricao){
        this.indice = indice;
        this.descricao = descricao;
  }
 
   getsss....setsss...

}

bom assim funciona blz…
mas eu queria saber se existe como , alguma classe que eu utilize este enum , passar um indice para o enum e ele me reponder a descrição
pois estou utilizando o indice para setar dentro de um SortedMap assim ele consegue ondenar como eu quero respeitando a ondem crescente do indice.
mas para exibir na tela quero colocar a descrição e não queria fazer uma metodo assim

if(indice = Enum.EX_UM.getIndice){
  return Enum.EX_UM.getDescricao;
}

bom a duvida é essa…

3 Respostas

W

Você pode utilizar o método values do enum. Ele retorna um array com todos os dados do enum.
Assim você pode pegar pelo índice do array.

allanmarques

Não precisa do indice, vc pode usar o método ordinal().

ViniGodoy
public EnumExemplo(){   
 
  EX_UM(0,"XXXXXX"),   
  EX_DOIS(1,"GGGGG"),   
  EX_TRES(2,"AAAAA");   
  
  private int indice;   
  private String descricao;   
  
  EnumExemplo(int indice,String descricao){   
    this.indice = indice;   
    this.descricao = descricao;   
  }   
  
  public static EnumExemplo porIndice(int indice) {
    for (EnumExemplo ee : EnumExemplo.values()) {
      if (ee.getIndice() == indice) { 
        return ee;
      }
    } 
    throw new IllegalArgumentException("Indice não encontrado: " + indice);
  }
}
E aí:
String descr = EnumExemplo.porIndice(1).getDescricao();
Criado 18 de fevereiro de 2009
Ultima resposta 18 de fev. de 2009
Respostas 3
Participantes 4