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