Documented — 문서화 애너테이션
Documented — 문서화 애너테이션
@Documented 애너테이션이 애너테이션 인터페이스 A의 선언에 존재하면, 요소에 붙은 모든 @A 애너테이션은 해당 요소의 공개 계약(public contract)의 일부로 간주됩니다. 즉, 애너테이션 인터페이스 A가 Documented로 표시되면 A 애너테이션의 존재와 값이 A가 붙는 요소들의 공개 계약의 일부가 됩니다.
본문
반대로, 애너테이션 인터페이스 B가 Documented로 표시되지 않으면 B 애너테이션의 존재와 값은 B가 붙는 요소들의 공개 계약의 일부가 아닙니다. 구체적으로, 애너테이션 인터페이스가 Documented로 표시되면 기본적으로 javadoc 같은 도구가 해당 인터페이스의 애너테이션을 출력에 표시하지만, Documented가 없는 애너테이션 인터페이스의 애너테이션은 표시되지 않습니다.
@Documented
@Retention(RUNTIME)
@Target(ANNOTATION_TYPE)
public @interface Documented
이 애너테이션은 애너테이션 인터페이스 선언에만 적용할 수 있으며, 요소가 없습니다. javadoc 문서에 애너테이션 정보를 남기고 싶은 메타 애너테이션을 정의할 때 사용합니다.