CH9-6 · MODEL

애너테이션 정의와 사용: 먼저 구분할 경계

애너테이션은 프로그램 요소에 구조화된 메타데이터를 붙입니다.

핵심 경계

애너테이션 요소는 제한된 값 타입을 사용한다

기본 타입, String, Class, enum, 다른 annotation과 그 배열 등을 요소로 선언할 수 있습니다.

핵심 경계

@Target이 붙을 수 있는 선언을 제한한다

TYPE, METHOD, FIELD, PARAMETER, RECORD_COMPONENT 등 실제 소비자가 조사하는 위치만 허용합니다.

핵심 경계

@Retention이 남아 있는 시점을 정한다

SOURCE는 컴파일 뒤 사라지고 CLASS는 클래스 파일에 남으며 RUNTIME은 리플렉션으로 읽을 수 있습니다.

핵심 경계 기본 타입, String, Class, enum, 다른 annotation과 그 배열 등을 요소로 선언할 수 있습니다.