Java enum - why use toString instead of name

The Solution to Java enum - why use toString instead of name is

It really depends on what you want to do with the returned value:

  • If you need to get the exact name used to declare the enum constant, you should use name() as toString may have been overriden
  • If you want to print the enum constant in a user friendly way, you should use toString which may have been overriden (or not!).

When I feel that it might be confusing, I provide a more specific getXXX method, for example:

public enum Fields {
    LAST_NAME("Last Name"), FIRST_NAME("First Name");

    private final String fieldDescription;

    private Fields(String value) {
        fieldDescription = value;

    public String getFieldDescription() {
        return fieldDescription;

~ Answered on 2012-11-08 14:37:43

Most Viewed Questions: