Item 37. 자료형을 정의할 때 표식 인터페이스를 사용하라.

표식 인터페이스(marker interface) : 아무 함수도 선언하지 않은 인터페이스(ex> ```Serializable``)

interface MarkerInterface{}

표식 인터페이스(marker interface)의 장점

  1. 표식 인터페이스가 붙은 클래스가 존재하면, 클래스가 만드는 객체들이 구현하는 자료형으로 표식 인터페이스가 쓸일 수 있다.
    • 표식 인터페이스는 자료형이다.
    • 표식 인터페이스는 자료형이기 때문에 컴파일 시점에 오류를 미리 발견할 수 있다.
  2. 적용 범위(scope)를 아주 세밀하게 지정 할 수 있다.
    • 인터페이스의 계승(extends)을 통해서 특정 타입을 적용범위로 설정할 수 있다.

표식 어노테이션의 장점

  1. 풍부한 표현으로 이란 확장성
    • 기본값을 가지는 어노테이션 자료형 요소(annotation type element)를 추가할 수 있다.
  2. 더 큰 어노테이션 기능(facility)의 일부

표식 인터페이스 vs 표식 어노테이션

자료형이 필요하다면 인터페이스를 기본적으로 사용을 고민하라.