728x90
특정 코드를 사용하는 '프로그램'에게 정보를 전달하는 것
애너테이션이 하는 역할은 주석과 거의 흡사하다. 다만 대상이 다를 뿐이다. 주석은 개발자의 이해를 돕기 위해서 사용하지만 애너테이션은 프로그램에게 유용한 정보를 제공하기 위해 사용한다.
애너테이션의 주요 역할
- 컴파일러에게 문법 에러를 체크하도록 정보를 제공한다
- 프로그램을 빌드할 때 코드를 자동으로 생성할 수 있도록 정보를 제공한다
- 런타임에 특정 기능을 실행하도록 정보를 제공한다
사용 예시
@Test // 아래 메서드가 테스트 대상임을 테스트 프로그램에게 알리는 애너테이션
public void run() {...생략...}
public void stop() {...생략...}
애너테이션의 종류
- 표준 애너테이션 : 자바에서 기본적으로 제공하는 애너테이션
@Override | 컴파일러에게 메서드를 오버라이딩하는 것이라고 알림 |
@Deprecated | 앞으로 사용하지 않을 대상을 알릴 때 사용 |
@FunctionalInterface | 함수형 인터페이스라는 것을 알 |
@SuppressWarning | 컴파일러가 경고메세지를 나타내지 않음 |
- 메타 애너테이션 : 애너테이션에 붙이는 애너테이션으로, 애너테이션을 정의하는 데에 사용 (애너테이션의 애너테이션)
@Target | 애너테이션을 정의할 때 적용 대상을 지정하는데 사용한다. |
@Documented | 애너테이션 정보를 javadoc으로 작성된 문서에 포함시킨다. |
@Inherited | 애너테이션이 하위 클래스에 상속되도록 한다. |
@Retention | 애너테이션이 유지되는 기간을 정하는데 사용한다. |
@Repeatable | 애너테이션을 반복해서 적용할 수 있게 한다. |
- 사용자 정의 애너테이션 : 사용자가 직접 정의하는 애너테이션
728x90
'개발일지 > Java' 카테고리의 다른 글
Java 스트림(Stream) (0) | 2022.09.19 |
---|---|
Java 람다식 (Lambda Expression (0) | 2022.09.19 |
Java Map<key, value>, HashMap (0) | 2022.09.17 |
Java Set<E>, HashSet, TreeSet (0) | 2022.09.17 |
Java Iterator (0) | 2022.09.17 |