Retention — 유지 정책 애너테이션

Retention — 유지 정책 애너테이션

@Retention은 애너테이션된 인터페이스를 가진 애너테이션이 얼마나 오래 유지되는지를 나타냅니다. 애너테이션 인터페이스 선언에 Retention 애너테이션이 없으면 유지 정책은 기본적으로 RetentionPolicy.CLASS로 설정됩니다.

출처: Java API Reference

본문

Retention 메타 애너테이션은 메타 애너테이션된 인터페이스가 직접 애너테이션에 사용될 때만 효과가 있습니다. 메타 애너테이션된 인터페이스가 다른 애너테이션 인터페이스의 멤버 인터페이스로 사용되면 효과가 없습니다.

@Documented
@Retention(RUNTIME)
@Target(ANNOTATION_TYPE)
public @interface Retention

요소

RetentionPolicy value
  • value — 유지 정책을 나타내는 RetentionPolicy 값입니다. SOURCE, CLASS, RUNTIME 중 하나를 지정할 수 있습니다.

이 메타 애너테이션은 애너테이션 정보가 소스에만 남을지, 클래스 파일에 남을지, 런타임 반사로 읽을 수 있게 할지를 결정합니다. 예를 들어 런타임에 리플렉션으로 애너테이션을 읽어야 한다면 @Retention(RetentionPolicy.RUNTIME)을 사용합니다.

더 알아보기 (Learn more)