Если вы посмотрите в enum api на метод, name()
он говорит, что:
Возвращает имя этой константы перечисления, в точности как объявлено в объявлении перечисления. Большинство программистов должны использовать метод toString вместо этого, поскольку метод toString может возвращать более удобное для пользователя имя. Этот метод предназначен в первую очередь для использования в специализированных ситуациях, где правильность зависит от получения точного имени, которое не будет меняться от выпуска к выпуску.
Почему лучше использовать toString()
? Я имею в виду, что toString может быть переопределено, когда name () уже окончательно. Так что, если вы используете toString, и кто-то переопределяет его, чтобы вернуть жестко запрограммированное значение, все ваше приложение не работает ... Также, если вы посмотрите в исходных текстах, метод toString () возвращает точно и только имя. Это то же самое.
toString()
в своем перечислении, но никто другой не может расширить и переопределить его. Вы не можете расширять перечисления.