Anteriormente, eu tinha minhas enums LegNo definidas simplesmente como:
NO_LEG, LEG_ONE, LEG_TWO
e, ao ligar return LegNo.values()[i];
, consegui obter o valor associado a cada enum.
Mas agora eu decidi que quero que o LegNo
enum NO_LEG
seja o int -1 em vez de 0, então decidi usar um construtor privado para inicializar e definir seu valor int
NO_LEG(-1), LEG_ONE(1), LEG_TWO(2);
private LegNo(final int leg) { legNo = leg; }
a única coisa agora é que, como estou fazendo dessa maneira, o values()
método não funcionará para o NO_LEG
enum. Como faço para obter o enum associado ao int? Existe alguma maneira eficiente de fazer isso além de usar uma instrução case switch ou if-elseif-elseif
Eu posso ver um monte de perguntas SO relacionadas com a obtenção do valor int do enum, mas estou atrás do contrário.