Bonjour
Je viens du C, et j'ai la longue habitude d'écrire ce genre de choses
donnant (-1, 0, 1, 2, 1, 2, 20, 21) comme série de valeurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 enum TOTO { VALEUR1=-1, VALEUR2, VALEUR3, VALEUR4, VALEUR5=VALEUR3, VALEUR6, VALEUR7=20, VALEUR8 };
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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 } }
Quelqu'un a une idée?
Partager