Redéfinition (Overriding) de la méthode toString()
Par défaut, lorsque vous affichez un objet énumération (enum) ou que vous l'utilisez dans un contexte de chaîne de caractères (string), la méthode toString()
de l'énumération est appelée, ce qui renvoie le nom de la constante d'énumération sous forme de String
. Cependant, vous pouvez redéfinir (override) la méthode toString()
pour fournir une représentation sous forme de chaîne de caractères personnalisée pour votre énumération.
Voici un exemple de redéfinition de la méthode toString()
dans une énumération DayOfWeek
:
public enum DayOfWeek {
MONDAY("Monday"),
TUESDAY("Tuesday"),
WEDNESDAY("Wednesday"),
THURSDAY("Thursday"),
FRIDAY("Friday"),
SATURDAY("Saturday"),
SUNDAY("Sunday");
private final String displayName;
DayOfWeek(String displayName) {
this.displayName = displayName;
}
@Override
public String toString() {
return displayName;
}
}
Dans cet exemple, chaque constante d'énumération a un champ privé displayName
qui stocke la représentation sous forme de chaîne de caractères personnalisée pour cette constante. La méthode toString()
est redéfinie pour renvoyer la valeur de displayName
au lieu du nom d'énumération par défaut.
Maintenant, lorsque vous utilisez l'énumération DayOfWeek
dans votre code, la représentation sous forme de chaîne de caractères personnalisée sera utilisée :
DayOfWeek today = DayOfWeek.MONDAY;
System.out.println(today); // Sortie : Monday
La redéfinition de la méthode toString()
peut être particulièrement utile lorsque vous souhaitez fournir une représentation plus conviviale pour l'utilisateur ou plus descriptive de vos constantes d'énumération. Cela peut rendre votre code plus lisible et plus facile à comprendre, en particulier lorsque vous travaillez avec des énumérations dans des interfaces utilisateur ou dans des scénarios de journalisation/débogage.
Voici un autre exemple de redéfinition de la méthode toString()
dans une énumération Color
:
public enum Color {
RED("Red", 255, 0, 0),
GREEN("Green", 0, 255, 0),
BLUE("Blue", 0, 0, 255);
private final String name;
private final int red;
private final int green;
private final int blue;
Color(String name, int red, int green, int blue) {
this.name = name;
this.red = red;
this.green = green;
this.blue = blue;
}
@Override
public String toString() {
return name;
}
// Autres méthodes pour obtenir les propriétés de couleur
}
Dans cet exemple, l'énumération Color
a un champ name
qui stocke la représentation sous forme de chaîne de caractères personnalisée pour chaque couleur. La méthode toString()
est redéfinie pour renvoyer la valeur de name
au lieu du nom d'énumération par défaut.
La redéfinition de la méthode toString()
dans vos énumérations peut grandement améliorer la lisibilité et l'utilisabilité de votre code, en particulier lorsque vous travaillez avec des énumérations dans divers contextes.