6장_아이템41 - ririkat/effective-java GitHub Wiki
타입 정의를 할 때는 마커 인터페이스와 마커 애너테이션을 사용할 수 있다. 이 둘의 각 쓰임을 알아보자.
- 아무 메서드도 담고 있지 않고, 구현하는 클래스가 특정 속성을 가짐을 표시해주는 인터페이스
ex. Serializable 인터페이스
- 새로 추가하는 메서드 없이 단지 타입 정의가 목적인 경우 사용
-
아이템39
내용 참고 - 클래스와 인터페이스 외의 프로그램 요소에 마킹해야할 때 or 애너테이션을 활발히 활용하는 프레임워크에서 사용
- 마커 인터페이스의 장점
- 구현 클래스의 인스턴스들을 구분하는 타입으로 쓸 수 있다. (컴파일타임에 오류를 잡을 수 있음)
- 적용 대상을 더 정밀하게 지정할 수 있다.
- 마커 애너테이션의 장점
- 거대한 애너테이션 시스템의 지원을 받는다.