|
1 | 1 | ##如何将String转换为enum
|
2 | 2 |
|
3 | 3 | ### 问题
|
4 | | -一个枚举定义: |
| 4 | +假设定义了如下的enum(枚举): |
5 | 5 |
|
6 | 6 | ```java
|
7 | 7 | public enum Blah {
|
8 | 8 | A, B, C, D
|
9 | 9 | }
|
10 | 10 | ```
|
11 | | -并且我知道枚举的String值,比如 "A",我想将其转换为Blah.A,我应该怎么做? |
12 | | -是否有Enum.valueOf() 这样的方法,如果是,那我如何使用? |
| 11 | +已知枚举对应的String值,希望得到对应的枚举值。例如,已知"A",希望得到对应的枚举——Blah.A,应该怎么做? |
| 12 | +Enum.valueOf()是否能实现以上目的,如果是,那我如何使用? |
13 | 13 |
|
14 | 14 |
|
15 | 15 | ### 答案
|
16 | 16 | 是的,Blah.valueOf("A") 将会得到 Blah.A
|
17 | 17 |
|
18 | | -静态方法valueOf() 和 values() 会在编译期创建,不过这不会体现在源代码内,他们出现在JavaDoc中,比如 [Dialog.ModalityTyp](http://docs.oracle.com/javase/7/docs/api/java/awt/Dialog.ModalityType.html) 中出现这两个方法。 |
| 18 | +静态方法valueOf() 和 values() 不存在于源码中,而是在编译时创建,我们也可以在JavaDoc查看到它们,比如 [Dialog.ModalityTyp](http://docs.oracle.com/javase/7/docs/api/java/awt/Dialog.ModalityType.html) 就中出现这两个方法。 |
19 | 19 |
|
20 | 20 | ### 其他答案
|
21 | 21 |
|
22 | | -我有一个友善的工具方法: |
| 22 | +我有一个挺赞的工具方法: |
23 | 23 | ```java
|
24 | 24 | /**
|
25 | 25 | * A common method for all enums since they can't have another base class
|
|
0 commit comments