Retention — 유지 정책 애너테이션
Retention — 유지 정책 애너테이션
@Retention은 애너테이션된 인터페이스를 가진 애너테이션이 얼마나 오래 유지되는지를 나타냅니다. 애너테이션 인터페이스 선언에 Retention 애너테이션이 없으면 유지 정책은 기본적으로 RetentionPolicy.CLASS로 설정됩니다.
본문
Retention 메타 애너테이션은 메타 애너테이션된 인터페이스가 직접 애너테이션에 사용될 때만 효과가 있습니다. 메타 애너테이션된 인터페이스가 다른 애너테이션 인터페이스의 멤버 인터페이스로 사용되면 효과가 없습니다.
@Documented
@Retention(RUNTIME)
@Target(ANNOTATION_TYPE)
public @interface Retention
요소
RetentionPolicy value
value— 유지 정책을 나타내는RetentionPolicy값입니다.SOURCE,CLASS,RUNTIME중 하나를 지정할 수 있습니다.
이 메타 애너테이션은 애너테이션 정보가 소스에만 남을지, 클래스 파일에 남을지, 런타임 반사로 읽을 수 있게 할지를 결정합니다. 예를 들어 런타임에 리플렉션으로 애너테이션을 읽어야 한다면 @Retention(RetentionPolicy.RUNTIME)을 사용합니다.