Java将枚举转换为字符串

示例

有时您想将枚举转换为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()可能会被开发人员覆盖,以使其打印更加用户友好String

toString()如果要检查代码,请不要使用,因为这样做name()更加稳定。仅toString()在将值输出到日志或stdout等时使用

默认:

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"