우테코 사다리 게임 미션을 진행하다가 코드 리뷰해주시는 리뷰어분께서 까먹은(😅) 접근제어자를 지적해주셔서 찬찬히 모든 메서드를 살펴보다가 문득 Enum 생성자의 접근제어자가 생략되어있는 것을 발견했다
공식 문서 등을 살펴보면, enum type 생성자의 접근제어자는 오직 private 만 가능하다고 한다.
왜 인지를 알기위해선 Enum 이 무엇인지를 정확히 알고 있어야하는데,
따라서 다른 패키지나 클래스에서 enum 에 접근해 동적으로 어떤 값을 정해줄 수 없어야 한다.
-> java 는 컴파일타임에 모든 값을 알고 있게 함으로써 타입 안정성을 보장해주고 있다.
이 때문에 enum 은 외부에서 접근 가능한 생성자가 없으므로 인스턴스 생성 및 상속이 불가능 한 것이다.
위 내용을 이해했다면 자연스레 함께 이해되는 내용들인 것 같다!
Enum의 생성자 접근 제어자라니 정말 고민해 본 적 없는 내용이네요 유익한 글 감사해요!