示例
有时您想将枚举转换为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()可能会被开发人员覆盖,以使其打印更加用户友好StringtoString()如果要检查代码,请不要使用,因为这样做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"