В каком Java-коде какой метод name () вернется? - PullRequest
0 голосов
/ 31 мая 2018

У меня enum определен следующим образом

public enum EventBusAddress{
   TRADE_PAIR,
   ORDER 
}

И метод имени вызывается следующим образом

String trade_pair = EventBusAddress.TRADE_PAIR.name();

Может кто-нибудь объяснить, какой метод name () возвращается?

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Когда вы используете ключевое слово 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
 */
0 голосов
/ 31 мая 2018

Метод java.lang.Enum.name () возвращает имя этой константы перечисления, точно так же, как объявлено в объявлении ее перечисления.Если не объявлено как указано выше, вы получите toString (), но результатом будет FINAL.

Зачем использовать имя?Name () является окончательным методом, поэтому его нельзя переопределить, поэтому лучше, чем toString.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...