У меня enum определен следующим образом
public enum EventBusAddress{ TRADE_PAIR, ORDER }
И метод имени вызывается следующим образом
String trade_pair = EventBusAddress.TRADE_PAIR.name();
Может кто-нибудь объяснить, какой метод name () возвращается?
Когда вы используете ключевое слово enum, создается класс, расширяющий java.lang.Enum.Одним из методов в java.lang.Enum является 'public final String name ()'.Этот метод возвращает точное объявление перечисления в виде строки.Вы можете переопределить toString () и получить более описательное имя, если хотите.
Из Java Doc,
/** * Returns the name of this enum constant, exactly as declared in its * enum declaration. * * <b>Most programmers should use the {@link #toString} method in * preference to this one, as the toString method may return * a more user-friendly name.</b> This method is designed primarily for * use in specialized situations where correctness depends on getting the * exact name, which will not vary from release to release. * * @return the name of this enum constant */
Метод java.lang.Enum.name () возвращает имя этой константы перечисления, точно так же, как объявлено в объявлении ее перечисления.Если не объявлено как указано выше, вы получите toString (), но результатом будет FINAL.
Зачем использовать имя?Name () является окончательным методом, поэтому его нельзя переопределить, поэтому лучше, чем toString.