Java Enum 值返回字符串值而不是枚举常量

问题描述 投票:0回答:1

对于这个枚举: 枚举 myEnum { 芒果(“黄色”), 橙色(“橙色”), 葡萄(“绿色”);

  public final String val;

  myEnum(String s) {
    this.val = s;
  }

}

myEnum.valueOf("MANGO") returns myEnum.MANGO
myEnum.valueOf("MANGO").toString() returns "MANGO"

但是,如果我像这样重写 myEnum 定义中的 toString 方法:

  @Override
  public String toString() {
    return val;
  }

然后: myEnum.valueOf("MANGO") 返回“黄色” myEnum.valueOf("MANGO").toString() 返回“黄色”

当我们重写 toString() 时,为什么 valueOf() 开始表现得像 toString() ? 我在想 valueOf() 仍然应该返回 Enum 常量 myEnum.MANGO

java enums
1个回答
0
投票

我正在谈论 valueOf(),以及为什么在我重写 toString() 之后它现在返回一个字符串,而不是枚举常量

事实并非如此。 您只需查看枚举的

toString
- 通过打印枚举或在调试器中查看它。

© www.soinside.com 2019 - 2024. All rights reserved.