Anteriormente, tenía mis enumeraciones LegNo definidas simplemente como:
NO_LEG, LEG_ONE, LEG_TWO
y al llamar return LegNo.values()[i];
, pude obtener el valor asociado con cada enumeración.
Pero ahora he decidido que quiero que la LegNo
enumeración NO_LEG
sea int -1 en lugar de 0, así que decidí usar un constructor privado para inicializar y establecer su valor int
NO_LEG(-1), LEG_ONE(1), LEG_TWO(2);
private LegNo(final int leg) { legNo = leg; }
lo único ahora es que como lo estoy haciendo de esta manera, el values()
método no funcionará para la NO_LEG
enumeración. ¿Cómo consigo la enumeración asociada con el int? ¿Hay alguna forma eficiente de hacer esto que no sea usar una instrucción de cambio de caso o un if-elseif-elseif
Puedo ver muchas preguntas SO relacionadas con la obtención del valor int de la enumeración, pero busco lo contrario.