Найти тему
DEBAGanov

Java 84. Можем ли мы переопределить метод toString() для Enum?

Да, вы можете переопределить метод toString() для Enum в Java. По умолчанию вызов toString() для экземпляра Enum возвращает значение его поля имени. Однако вы можете определить собственный метод toString() для класса Enum, чтобы возвращать другое строковое представление экземпляра. Вот пример:

public enum Day {
MONDAY("Monday"), TUESDAY("Tuesday"), WEDNESDAY("Wednesday"),
THURSDAY("Thursday"), FRIDAY("Friday"), SATURDAY("Saturday"), SUNDAY("Sunday");

private String displayName;

private Day(String displayName) {
this.displayName = displayName;
}

@Override
public String toString() {
return displayName;
}
}

В этом примере перечисление Day имеет настраиваемое поле displayName и конструктор, который задает это поле для каждой константы перечисления. Затем метод toString() переопределяется, чтобы возвращать значение displayName вместо имени. Теперь вызов toString() для любого экземпляра Day вернет соответствующее отображаемое имя вместо постоянного имени.

Имейте в виду, что классы enum неизменяемы, а это означает, что вы не можете изменить существующий экземпляр или создать новые экземпляры во время выполнения. Таким образом, когда вы переопределяете метод toString() или любой другой метод, вы должны определить его в исходном определении класса перечисления, а не в подклассе или экземпляре класса перечисления.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov