Enums en Java 5 : question
Bonjour
Je viens du C, et j'ai la longue habitude d'écrire ce genre de choses
Code:
1 2 3 4 5 6 7 8 9 10 11
| enum TOTO
{
VALEUR1=-1,
VALEUR2,
VALEUR3,
VALEUR4,
VALEUR5=VALEUR3,
VALEUR6,
VALEUR7=20,
VALEUR8
}; |
donnant (-1, 0, 1, 2, 1, 2, 20, 21) comme série de valeurs
J'ai essayé d'adapter ça en Java 5, j'arrive à gérer les affectations directes, mais j'ai il me reste un problème
code java :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| enum TOTO
{
VALEUR1(-1),
VALEUR2,
VALEUR3,
VALEUR4,
VALEUR5(VALEUR3),
VALEUR6,
VALEUR7(20),
VALEUR8;
private int valeur;
public valeur() { return this.valeur; }
TOTO(final int i) { this.valeur=i; }
TOTO(TOTO i) { this.valeur=TOTO.valeur(); }
TOTO() {
final int ord=this.ordinal();
if (ord==0)
this.valeur=0;
else
this.valeur=TOTO.values()[ord-1].value()+1; // ici est mon problème
}
} |
Le problème est que je n'ai pas accès à enum.values() dans un constructeur de l'enum, et que je suis obligé de passer par un compteur statique externe, ce qui est très moche.
Quelqu'un a une idée?