Раньше у меня были перечисления LegNo, заданные просто как:
NO_LEG, LEG_ONE, LEG_TWO
и вызывая return LegNo.values()[i];
, мне удалось получить значение, связанное с каждым перечислением.
Но теперь я решил, что я хочу, чтобы LegNo
enum NO_LEG
был int -1 вместо 0
поэтому я решил использовать частный конструктор для инициализации и установить его значение int
NO_LEG(-1), LEG_ONE(1), LEG_TWO(2);
private LegNo(final int leg) { legNo = leg; }
теперь единственное, что, поскольку я делаю это так, метод values()
не будет работать для перечисления NO_LEG
. Как получить перечисление, связанное с int? Есть ли эффективный способ сделать это, кроме использования оператора case case или if-elseif-elseif
Я вижу много вопросов SO, связанных с получением значения int из перечисления, но это я после обратного.