[아이템 41] 정의하려는 것이 타입이라면 마커 인터페이스를 사용하라
인터페이스인 Serializable 와 같이 아무 메서드도 담고 있지 않고, 구현 클래스가 특정 속성을 가짐을 표시 해주는 인터페이스를 마커 인터페이스라고 한다. Serializable 는 직렬화 할 수 있다고 알려준다. 마커 애너테이션이 생기면서 마커 인터페이스가 더이상 쓸모 없어 보일 수 있으나 그렇지 않다. 마커 인터페이스는 두 가지 면에서 마커 애너테이션 보다 나은 점이 있다. 마커 애너테이션과 달리 마커 인터페이스는 이를 구현한 클래스의 인스턴스들을 구분하는 타입으로 사용할 수 있다. 마커 애너테이션은 런타임에서 발견 할 오류를 마커 인터페이스는 컴파일 타임에 발견 할 수 있다. 적용 대상을 보다 더 정밀하게 지정 할 수 있다. 애너테이션은 @Target 을 이용해서 클래스, 인터페이스, 열거 ..
Reading Record/이펙티브자바
2020. 6. 30.