Enum
의 본질적으로 불변의 성격을 가지기 때문에 모든 멤버 변수는 final
로 정의하여 사용해야 합니다.
왜냐하면 Enum
타입은 인스턴스를 생성할 수 없고, 모든 열거 인자들이 public static final
로 정의되기 때문에 thread간 공유가 가능하여 멤버 변수를 final
로 설정하지 않으면 의도하지 않게 변경된 값을 사용할 가능성이 존재하기 때문입니다.
그래서 인텔리제이도 멤버 변수에 final 키워드를 안넣으면 warning을 뛰워줍니다.