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()astoStringmay have been overriden - If you want to print the enum constant in a user friendly way, you should use
toStringwhich 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;
}
}