Auparavant, mes enums LegNo étaient définis simplement comme suit :
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 voulais le LegNo
enum NO_LEG
pour être l'int -1 au lieu de 0 J'ai donc 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()
ne fonctionnera pas pour la méthode NO_LEG
enum. Comment puis-je obtenir l'enum associé à l'int ? Existe-t-il un moyen efficace de le faire, autre que l'utilisation d'une instruction de commutation de cas ou d'un if-elseif-elseif ?
Je vois que beaucoup de questions de l'OS concernent l'obtention de la valeur int de l'enum, mais je cherche l'inverse.