Когда мы переопределили toString(), почему valueOf() начал вести себя как toString()?
Я думал о valueOf () по-прежнему должен возвращать константу Enum myEnum.MANGO
Для этого перечисления: [code]enum myEnum { MANGO ("yellow"), ORANGE("orange"), GRAPE("green");
public final String val;
myEnum(String s) { this.val = s; } } [/code] [code]myEnum.valueOf("MANGO") returns myEnum.MANGO myEnum.valueOf("MANGO").toString() returns "MANGO" [/code] Однако, если я переопределяю метод toString внутри определения myEnum следующим образом: [code] @Override public String toString() { return val; } [/code] Тогда: [code]myEnum.valueOf("MANGO") returns "yellow" myEnum.valueOf("MANGO").toString() returns "yellow" [/code] Когда мы переопределили toString(), почему valueOf() начал вести себя как toString()? Я думал о valueOf () по-прежнему должен возвращать константу Enum myEnum.MANGO
В моем проекте веб-API я нашел фрагмент кода, который имеет класс такой структуры:
публичный класс QuestionDto { public bool отключен {get;set;} общедоступный внутренний идентификатор {get;set;} публичный int порядок {get;set;} public PositionDto...
enum Fruit {
GRAPS @value(value: GR )
BANANAS @value(value : “BN”)
}
У меня есть Enum выше, и я ожидаю сгенерированный код, как показано ниже, с использованием java-кода npx
public enum Fruit
{
GRAPS( GR );
BANANAS(“BN”);
Python 3.4 представляет новый модуль enum , который добавляет перечисленный тип к языку. Документация для enum.enum дает пример, чтобы продемонстрировать, как ее можно расширить:
>>> class Planet(Enum):
... MERCURY = (3.303e+23, 2.4397e6)
......