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;
}
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…