Получение 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, но я после наоборот.