对于这个枚举: 枚举 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
我正在谈论 valueOf(),以及为什么在我重写 toString() 之后它现在返回一个字符串,而不是枚举常量
事实并非如此。 您只需查看枚举的
toString
- 通过打印枚举或在调试器中查看它。