In precedenza, i miei enumerazioni LegNo erano definiti semplicemente come:
NO_LEG, LEG_ONE, LEG_TWO
e chiamando return LegNo.values()[i];, sono stato in grado di ottenere il valore associato a ogni enum.
Ma ora ho deciso che voglio che l' LegNoenumerazione NO_LEGsia int -1 invece di 0, quindi ho deciso di utilizzare un costruttore privato per inizializzare e impostare il suo valore int
NO_LEG(-1), LEG_ONE(1), LEG_TWO(2);
private LegNo(final int leg) { legNo = leg; }
l'unica cosa ora è che, poiché lo sto facendo in questo modo, il values()metodo non funzionerà per l' NO_LEGenum. Come ottengo l'enumerazione associata all'int? Esiste un modo efficiente per farlo se non usare un'istruzione switch case o un if-elseif-elseif
Posso vedere molte domande SO relative all'ottenimento del valore int dall'enum, ma cerco il contrario.