[보충학습] Annotation

hyeon·2022년 5월 9일
0

Servlet 3.0 이상에서는 어노테이션을 사용하여 url을 설정해준다고했는데
그 annotation이 뭔지 정리해보고자 한다.

Annotation

정의

  • 메타데이터의 한 형태인 annotation은 프로그램 자체의 일부가 아닌 프로그램에 대한 데이터를 제공해준다.
    (=추가적인 정보를 제공해주는 메타데이터(=데이터를 설명해주는 데이터)

용도

  • 컴파일러에 대한 정보 — 컴파일러는 annotation을 사용하여 오류를 감지하거나 경고를 억제할 수 있습니다. (Ex @Deprecated)
  • 컴파일 시간 및 배포 시간 처리 — 소프트웨어 도구는 annotation 정보를 처리하여 코드, XML 파일 등을 생성할 수 있습니다. (Ex 앞에서배운 @WebServlet)
  • 런타임 처리 — 일부 annotation은 런타임에 검사할 수 있습니다.


이런식으로 주석으로 표현된 정보들을

이렇게 annotation 으로 정의할수 있고

정의 후 이렇게 해당 annotation을 사용할 수 있다.

출처 docs.oracle

사전 정의된 annotation 유형

@Override
요소가 슈퍼클래스에 선언된 요소를 재정의한다는 것을 컴파일러에 알립니다.
메소드가 오버라이드 됐는지 검증합니다.
만약 부모 클래스 또는 구현해야할 인터페이스에서 해당 메소드를 찾을 수 없다면 컴파일 오류가 납니다.
@Deprecated
메소드를 사용하지 말도록 유도합니다. 만약 사용한다면 컴파일 경고를 일으킵니다.
@SuppressWarnings
컴파일 경고를 무시하도록 합니다.
@SafeVarargs
제너릭 같은 가변인자 매개변수를 사용할 때 경고를 무시합니다. (자바7 이상)
@FunctionalInterface
람다 함수등을 위한 인터페이스를 지정합니다. 메소드가 없거나 두개 이상 되면 컴파일 오류가 납니다. (자바 8이상)

profile
남기고 싶은 개발자입니다 :>

0개의 댓글