Раніше я перераховував 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 switch або if-elseif-elseif
Я бачу багато питань SO, пов’язаних з отриманням значення int з переліку, але я шукаю зворотного.