Sobrescribiendo el Método toString()
Por defecto, cuando imprimes un objeto enumerado (enum) o lo usas en un contexto de cadena (string), se llama al método toString()
del enumerado, que devuelve el nombre de la constante enumerada como una String
. Sin embargo, puedes sobrescribir el método toString()
para proporcionar una representación de cadena personalizada para tu enumerado.
A continuación, se muestra un ejemplo de cómo sobrescribir el método toString()
en un enumerado 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;
}
}
En este ejemplo, cada constante enumerada tiene un campo privado displayName
que almacena la representación de cadena personalizada para esa constante. El método toString()
se sobrescribe para devolver el valor de displayName
en lugar del nombre predeterminado del enumerado.
Ahora, cuando uses el enumerado DayOfWeek
en tu código, se utilizará la representación de cadena personalizada:
DayOfWeek today = DayOfWeek.MONDAY;
System.out.println(today); // Output: Monday
Sobrescribir el método toString()
puede ser especialmente útil cuando quieres proporcionar una representación más amigable para el usuario o descriptiva de tus constantes enumeradas. Esto puede hacer que tu código sea más legible y fácil de entender, especialmente cuando trabajas con enumerados en interfaces de usuario o en escenarios de registro (logging) o depuración (debugging).
A continuación, se muestra otro ejemplo de cómo sobrescribir el método toString()
en un enumerado 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;
}
// Other methods to get color properties
}
En este ejemplo, el enumerado Color
tiene un campo name
que almacena la representación de cadena personalizada para cada color. El método toString()
se sobrescribe para devolver el valor de name
en lugar del nombre predeterminado del enumerado.
Sobrescribir el método toString()
en tus enumerados puede mejorar en gran medida la legibilidad y usabilidad de tu código, especialmente cuando trabajas con enumerados en diversos contextos.