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

NHJ·2022년 1월 21일
2

enum의 name()과 toString()은 모두 Enum의 값을 string으로 표현한다.

그렇다면 두 메소드의 차이점은 무엇일까?
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"를 반환한다.


[참고]

profile
화이팅!

0개의 댓글