Wcześniej moje wyliczenia LegNo były zdefiniowane po prostu jako:
NO_LEG, LEG_ONE, LEG_TWO
i dzwoniąc return LegNo.values()[i];, mogłem uzyskać wartość związaną z każdym wyliczeniem.
Ale teraz zdecydowałem, że chcę, aby LegNowyliczenie NO_LEGbyło wartością int -1 zamiast 0, więc zdecydowałem się użyć prywatnego konstruktora do zainicjowania i ustawienia jego wartości int
NO_LEG(-1), LEG_ONE(1), LEG_TWO(2);
private LegNo(final int leg) { legNo = leg; }
teraz jedyną rzeczą jest to, że ponieważ robię to w ten sposób, values()metoda nie będzie działać dla NO_LEGwyliczenia. Jak uzyskać wyliczenie skojarzone z int? Czy istnieje jakiś skuteczny sposób na zrobienie tego, inny niż użycie instrukcji przełączania case lub if-elseif-elseif
Widzę wiele pytań SO związanych z uzyskaniem wartości int z wyliczenia, ale jestem po odwrotnej kolejności.