JDK에서 제공하는 표준 애너테이션은 주로 컴파일러를 위한 것으로 컴파일러에게 유용한 정보를 제공한다.
JDK에서 제공하는 애너테이션은 java.lang.annotation
패키지에 포함되어 있다.
다른 프로그램에게 어떤 정보를 제공하기 위해 애너테이션을 사용한다고 명시했다.
구체적으로 풀어내면,
표준 애너테이션 | 설명 |
---|---|
@override | 컴파일러에게 오버라이딩하는 메서드라는 것을 알린다 |
@Deprecated | 앞으로 사용하지 않을 것을 권장하는 대상에게 사용한다 |
@SuppressWarnings | 컴파일러의 특정 경고 메세지가 나타나지 않게 해준다 |
@SafeVarargs | 제네릭 타입의 가변 인자에 사용한다. |
@FuntionalInterface | 함수형 인터페이스라는 것을 알린다 |
@Native | native메서드에서 참조되는 상수 앞에 붙인다 |
메타 애너테이션 | 설명 |
@Targer | 애너테이션이 적용 가능한 대상을 지정한다 |
@Documented | 애너테이션 정보가 javadoc으로 작성된 문서에 포함되게 한다 |
@Inherited | 애너테이션이 하위 클래스에 상속 되도록 한다 |
@Retention | 애너테이션이 유지되는 범위를 지정하는데 사용한다 |
@Repeatable | 애너테이션을 반복적으로 적용되게 한다 |
직접 애너테이션을 정의해서 사용할 수 있다
애너테이션을 정의하는 방법은 인터페이스를 정의하는 법과 비슷하다.
애너테이션은 java.lang.annotation
인터페이스를 상속받기 때문에 다른 클래스나 인터페이스를 상속 받을수 없다.