[Java] Enum.name() vs Enum.toString()


Enumのname()とtoString()は、いずれもEnumの値を文字列で表す.
では、2つの方法の違いは何でしょうか.
name()とtoString()の主な違いは、メソッドを再定義できるかどうかです.
name()はfinalメソッドであり、再定義はできませんが、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」を返します.
[注意]
  • https://pythonq.com/so/java/32134
  • https://stackoverflow.com/questions/18031125/what-is-the-difference-between-enum-name-and-enum-tostring