Auparavant, j'avais mes énumérations LegNo définies simplement comme:
NO_LEG, LEG_ONE, LEG_TWO
et en appelant return LegNo.values()[i];
, j'ai pu obtenir la valeur associée à chaque enum.
Mais maintenant, j'ai décidé que je veux que l' LegNo
énumération NO_LEG
soit le int -1 au lieu de 0, alors j'ai décidé d'utiliser un constructeur privé pour initialiser et définir sa valeur int
NO_LEG(-1), LEG_ONE(1), LEG_TWO(2);
private LegNo(final int leg) { legNo = leg; }
la seule chose maintenant est que parce que je le fais de cette façon, la values()
méthode ne fonctionnera pas pour l' NO_LEG
énumération. Comment puis-je obtenir l'énumération associée à l'int? Existe-t-il un moyen efficace de faire cela autre que d'utiliser une instruction case switch ou un if-elseif-elseif
Je peux voir beaucoup de questions SO liées à l'obtention de la valeur int à partir de l'énumération, mais je suis après l'inverse.