将枚举转换为 String
有时你想将枚举转换为 String,有两种方法可以做到这一点。
假设我们有:
public enum Fruit {
APPLE, ORANGE, STRAWBERRY, BANANA, LEMON, GRAPE_FRUIT;
}
那么我们如何将像 Fruit.APPLE
这样的东西转换成 APPLE
呢?
使用 name()
转换
name()
是 enum
中的一个内部方法,它返回枚举的 String
表示,返回 String
精确表示枚举值的定义方式。
例如:
System.out.println(Fruit.BANANA.name()); // "BANANA"
System.out.println(Fruit.GRAPE_FRUIT.name()); // "GRAPE_FRUIT"
使用 toString()
转换
默认情况下,toString()
被覆盖以具有与 name()
相同的行为
然而,toString()
很可能被开发者所取代,使其打印出更加用户友好的知识
如果你想检查你的代码,请不要使用
toString()
,name()
更稳定。当你要将值输出到日志或标准输出或其他内容时,仅使用toString()
默认情况下:
System.out.println(Fruit.BANANA.toString()); // "BANANA"
System.out.println(Fruit.GRAPE_FRUIT.toString()); // "GRAPE_FRUIT"
被覆盖的示例
System.out.println(Fruit.BANANA.toString()); // "Banana"
System.out.println(Fruit.GRAPE_FRUIT.toString()); // "Grape Fruit"