[Item38] Enum 확장 시켜버리기
자바의 enum은 타입 안전한 상수를 선언하기 위한 야무진 도구다 Java1.5부터 등장했고 상수 집합을 나타내는 특별한 데이터 타입이다 다만 모든 것이 일장일단이 있듯 enum도 상속할 수 없다는 단점이 존재한다 우선 왜 enum은 상속할 수 없는지 그 이유부터 알아보자 가능한 값들의 닫힌 집합을 만들기 위해서다 닫힌 집합이란 컴파일 시점에 가능한 값들을 모두 알기 위해서고 이 방식이 개발자나 컴파일러 모두에게 이롭다고 한다 확장이 가능하다면 메서드의 인자로 A라는 enum을 받는 경우 리스코프 치환 원칙에 따라 A를 상속한 B라는 enum도 받을 수 있어야 한다 이런 경우 switch-case에서 사용할 수 없다 - switch(A) 라고 선언했는데 런타임에 B가 들어올 수 있다면 모든 case에 대..
Java/Effective Java
2022. 3. 21. 20:08