之间的主要区别
name()和
toString()是
name()是一个
final方法,所以它不能被重写。该
toString()方法返回的
name()默认值与默认值相同,但
toString()可以被Enum的子类覆盖。
因此,如果您需要 字段本身 的 名称 ,请使用
name()。如果您需要 字段值的字符串表示形式 ,请使用
toString()。
例如:
public enum WeekDay { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY; public String toString() { return name().charAt(0) + name().substring(1).toLowerCase(); }}在此示例中,
WeekDay.MONDAY.name()返回“ MONDAY”,然后
WeekDay.MONDAY.toString()返回“
Monday”。
WeekDay.valueOf(WeekDay.MONDAY.name())返回
WeekDay.MONDAY,但
WeekDay.valueOf(WeekDay.MONDAY.toString())抛出
IllegalArgumentException。



