Un bon système de types évite plus de bugs qu'une batterie de tests.
Les enums Java offrent une sécurité de type que les constantes primitives ne peuvent pas garantir.
Situation classique : représenter les statuts d'une commande.
Les avantages des enums :
1- Sécurité de type : impossible de passer une valeur incorrecte
2- Auto-documentation : les valeurs possibles sont explicites
3- Évolution contrôlée : ajouter un statut = modifier l'enum
4- Fonctionnalités riches : méthodes, constructeurs, interfaces
Les enums transforment vos constantes en véritables objets métier. Votre IDE peut même vous suggérer les valeurs possibles.
C'est la différence entre espérer que les données soient correctes et s'assurer qu'elles le sont.