Sometimes you want to convert your enum to a String, there are two ways to do that.
Assume we have:
public enum Fruit {
APPLE, ORANGE, STRAWBERRY, BANANA, LEMON, GRAPE_FRUIT;
}
So how do we convert something like Fruit.APPLE to "APPLE"?
name()name() is an internal method in enum that returns the String representation of the enum, the return String represents exactly how the enum value was defined.
For example:
System.out.println(Fruit.BANANA.name()); // "BANANA"
System.out.println(Fruit.GRAPE_FRUIT.name()); // "GRAPE_FRUIT"
toString()toString() is, by default, overridden to have the same behavior as name()
However, toString() is likely overridden by developers to make it print a more user friendly String
Don't use
toString()if you want to do checking in your code,name()is much more stable for that. Only usetoString()when you are going to output the value to logs or stdout or something
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"