CH9-6 · DECISION

애너테이션 정의와 사용의 선택 기준을 나란히 비교한다

비교 항목: 애너테이션 요소는 제한된 값 타입을 사용한다 / @Retention이 남아 있는 시점을 정한다 / 대상과 유지 기간을 좁힌다

애너테이션 정의와 사용 판단표
확인 질문판단 근거코드에서 드러낼 것
애너테이션 요소는 제한된 값 타입을 사용한다기본 타입, String, Class, enum, 다른 annotation과 그 배열 등을 요소로 선언할 수 있습니다.타입과 시작값
@Retention이 남아 있는 시점을 정한다SOURCE는 컴파일 뒤 사라지고 CLASS는 클래스 파일에 남으며 RUNTIME은 리플렉션으로 읽을 수 있습니다.실패 또는 변경 경계
대상과 유지 기간을 좁힌다@Target은 붙일 수 있는 선언을, @Retention은 소스·클래스·런타임 가운데 언제까지 남길지 정합니다.선택한 규칙의 결과

선택 기준 @Target은 붙일 수 있는 선언을, @Retention은 소스·클래스·런타임 가운데 언제까지 남길지 정합니다.