Obtener enumeración asociada con el valor int

Anteriormente, tenía mis enumeraciones de LegNo definidas simplemente como:

NO_LEG, LEG_ONE, LEG_TWO

y llamandoreturn LegNo.values()[i];, Pude obtener el valor asociado con cada enumeración.

Pero ahora he decidido que quiero elLegNo enumerarNO_LEG para ser el 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 porque lo estoy haciendo de esta manera elvalues() método no funcionará para elNO_LEG enumerar ¿Cómo obtengo la enumeración asociada con el int? ¿Hay alguna forma eficiente de hacer esto que no sea usar una sentencia de cambio de caso o un if-elseif-elseif

Puedo ver muchas preguntas de SO relacionadas con la obtención del valor int de la enumeración, pero estoy detrás de lo contrario.

Respuestas a la pregunta(8)

Su respuesta a la pregunta