J'ai un petit soucis avec les enums. Je n'arrive pas à trouver une solution qui me convienne pleinement.

Pour l'instant j'utilise ce genre de chose:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
public static final int SEASON_WINTER  = 0;
public static final int SEASON_SPRING   = 1;
public static final int SEASON_SUMMER = 2;
public static final int SEASON_FALL      = 3;
.
.
.
int x=SEASON_WINTER;
mais c'est pas terrible car ne me garanti que les valeurs sont bien distinctes.

Quand à la variante suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
public static class season{
  public static int winter()   {return 0;}
  public static int spring()   {return 1;}
  public static int summer() {return 2;}
  public static int fall()       {return 3;}
}
.
.
.
int x=season.winter();
c'est à peu de chose près la même chose.

Je pensai avoir trouvé mon bonheur avec enum qui fleurait bon le c.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
enum Season { WINTER, SPRING, SUMMER, FALL }
.
.
.
int x=Season.WINTER.getOrdinal();
Mais je ne peux pas utiliser directement Season.WINTER comme un int.
Et le getOrdinal() est un peu lourdot.

Je pense donc que je passe à côté de qqchose.
Merci de me dire quoi.