После прочтения документации String java.lang.Enum.name() я не уверен, что я понимаю, когда следует использовать name() и когда использовать toString().
Возвращает имя этой константы перечисления, точно так же, как указано в объявлении перечисления. Большинство программистов должны использовать метод toString, предпочитая это, так как метод toString может возвращать более удобное имя. Этот метод предназначен в первую очередь для использования в специализированных ситуациях, где правильность зависит от получения точного имени, которое не будет отличаться от выпуска к выпуску.
В частности, хотя в документации говорится, что предпочитает toString(), собственный StandardLocation Java использует name, когда я буду иметь подумал, что в документации указано иное.
public String getName() { return name(); }
Кроме того, Enum реализует toString() как,
public String toString() {
return name;
}
и я не могу представить себе ситуацию, когда пользовательское перечисление переписывает toString(), поэтому name() и toString() почти всегда одинаковы.
- Не могли бы вы объяснить, почему игнорирование документации и использование
name()- плохая идея? - Как насчет фразы "не будет отличаться от выпуска к выпуску". Если имя не изменится, означает ли это, что
java.lang.Enum.toString()будет?