将枚举转换为 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"