Получение enum, связанного со значением int

Ранее мои перечисления LegNo определялись просто как:

NO_LEG, LEG_ONE, LEG_TWO

и позвонивreturn LegNo.values()[i];Я смог получить значение, связанное с каждым перечислением.

Но теперь я решил, что хочуLegNo перечислениеNO_LEG быть целым числом -1 вместо 0 поэтому я решил использовать приватный конструктор для инициализации и установки его значения int

NO_LEG(-1), LEG_ONE(1), LEG_TWO(2);

private LegNo(final int leg) { legNo = leg; }

теперь единственное, что я делаю это таким образом,values() метод не будет работать дляNO_LEG ENUM. Как мне получить enum, связанный с int? Есть ли эффективный способ сделать это, кроме использования оператора переключения регистра или if-elseif-elseif

Я вижу много вопросов SO, связанных с получением значения int из enum, но я после наоборот.

Ответы на вопрос(8)

Ваш ответ на вопрос