Obtendo enum associado ao valor int

Anteriormente, eu tinha meus enums LegNo definidos simplesmente como:

NO_LEG, LEG_ONE, LEG_TWO

e chamandoreturn LegNo.values()[i];, Consegui obter o valor associado a cada enum.

Mas agora eu decidi que quero oLegNo enumNO_LEG para ser o int -1 em vez de 0, então eu 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, porque eu estou fazendo assim ovalues() método não vai funcionar para oNO_LEG enum. Como obtenho o enum associado ao int? Existe alguma maneira eficiente de fazer isso além de usar uma instrução de troca de caso ou um if-elseif-elseif

Eu posso ver um monte de perguntas sobre o SO para obter o valor int do enum, mas eu estou atrás do reverso.

questionAnswers(8)

yourAnswerToTheQuestion