Bon je vais répondre de façon un peu plus constructive...
Moi dans le cas d'énumération que on ne sait pas limiter à l'avance, je travaille de plus en plus avec les annotations.
En effet, j'observe que l'enjeu principal n'est pas forcément de désigner dans le code de telles valeurs, car elles le sont plus souvent par le niveau utilisateur, mais par contre le problème du code est de les traiter. (je ne sais pas si je suis clair).
Pour reprendre les couleurs, j'aurais :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
@SurCouleur("orangeSépia")
public void traiteOrangeSépia()
{
//... n'importe quoi...
}
@SurCouleur("jauneCitron", "bleuAzur")
public void traiteCouleursCartesPostales()
{
}
public void traiteAutresCouleurs()
{
} |
Et puis j'écris un processeur qui pour une classe donnée me donne la méthode correspondant à une couleur fonction de l'annotation. Et puis je déclenche cette méthode, évidemment.
C'est un système très souple, aussi bien au niveau des contrôles possibles, de la liste énumérée, des méthodes de traitement, très adapté à tous les contextes où c'est en fait l'utilisateur (que ce soit l'utilisateur final, un administrateur, un configurateur par properties...) qui réalise l'énumération.
Partager