Boa tarde pessoal!
Preciso pegar o name a partir do ordinal por exemplo;
public enum Numbs {
JANEIRO(1),FEVEREIRO(2),MARCO(3);
}
Quero passar o três por exemplo e ele me retorna o março.
Vlw!
Boa tarde pessoal!
Preciso pegar o name a partir do ordinal por exemplo;
public enum Numbs {
JANEIRO(1),FEVEREIRO(2),MARCO(3);
}
Quero passar o três por exemplo e ele me retorna o março.
Vlw!
Tem um pequeno padrão que costumo usar, que é criar um método static no enum.
Mais ou menos assim:
public enum Numbs {
JANEIRO(1),FEVEREIRO(2),MARCO(3);
public static Numbs getByCodigo(int cod) {
for (Numbs n : values()) {
if (n.codigo == cod) {
return n;
}
}
throw new IllegalArgumentException("Numbs invalido: " + cod);
}
}
..
...
...
// Chamador:
Numbs numbs = Numbs.getByCodigo(2);
ordinal começa em 0
pode fazer assim também:
enum MES {
JANEIRO,FEVEREIRO, MARÇO;
public static MES getMes(int codigo) {
return MES.values()[codigo -1];
}
}
eu nao aconselho utilizar caracter especial em nome de enum( metodo, classe e etc), é melhor criar uma propriedade nome para seu enum
abraço
Eu não sou a favor de confiar no ordinal natural do enum, em nenhum lugar do código.
Mas acho que nesse caso dos meses dá para fazer desse jeito porque é uma coisa altamente improvável de ter mudança.
Aqui você está falando de qual parte do código? Não achei o caractere especial…
utilizei “ç” em Março
é confiável desde que você passe a trabalhar em todo o projeto com enums e nao com o codigo
abraço