자바에서 애노테이션은 코드에 추가해 사용할 수 있는 메타 데이터(데이터를 설명하기 위한 데이터) 역할을 하며 @ 기호를 붙여 사용한다.
자바에서 기본적으로 제공하는 애노테이션
@Override
선언한 메서드가 오버라이드 되었다는 것을 나타낸다.
@Deprecated
앞으로 사용하지 않을 것을 권장하는 필드나 메서드에 붙인다. 만약 사용할 경우 컴파일 경고를 발생시킨다.
@SuppressWarnings
선언한 곳의 컴파일 경고가 나타나지 않게 한다.
@SafeVarargs
Java7부터 지원하며, 제네릭 같은 가변인자 매개변수를 사용할 때의 경고를 무시한다.
@FunctionalInterface
Java8부터 지원하며, 함수형 인터페이스를 지정하는 애노테이션이다.
애노테이션은 아래 구조로 구현가능 하다. 이를 메타 애노테이션이라 하고, 이를 사용해 커스텀 애노테이션을 작성할 수 있다.
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface CustomAnnotation {
boolean isCheck() default true;
}
애노테이션을 위한 애노테이션이다.
@Documented
javadoc(자바 코드에서 API 문서를 HTML 형식으로 생성해주는 도구)으로 작성한 문서에 포함시킨다. javadoc을 통해 자동으로 html문서가 만들어진다.
@Inherited
애노테이션의 상속을 가능하게 한다.
@Repeatable
Java8부터 지원하며, 연속으로 애노테이션을 선언할 수 있게 한다.