多读书多实践,勤思考善领悟

怎样得到指定名称的枚举类型对应的的字符串类型的枚举常量

本文于1773天之前发表,文中内容可能已经过时。

问题:

假如说我有一个如下的枚举类

1
2
3
public enum Blah {
A, B, C, D
}

而我想要找出具有指定名称的枚举类型对应的的字符串类型的枚举常量,打个比方"A"对应的值为Blah.A
此时我应该怎么做?
我是不是应该使用Enum.valueOf()这个方法?如果是的话,我又该怎么使用它?

回答:

是的,Blah.valueOf("A")将会给你你想要的Blah.A
不过需要注意的是,你输入的名字必须是绝对匹配的,像Blah.valueOf("a")Blah.valueOf("A ")都会抛出IllegalArgumentException
注:第一个表达式aA不匹配
第二个表达式A后面多了一个空格

静态方法valueOf()values()在编译时创建并且不会出现在编译后的源码里。但尽管如此,这两个方法还是确实出现在了Java文档里,文档连接

stackoverflow讨论地址 https://stackoverflow.com/questions/604424/how-to-get-an-enum-value-from-a-string-value-in-java