Basic Byte Bites

Java의 Annotation (어노테이션) 본문

Java

Java의 Annotation (어노테이션)

MKJo 2023. 8. 15. 18:57

1. 자바 어노테이션이란?

 

자바 어노테이션은 주석이라는 의미를 가진다.

자바 소스코드 사이에 @ 기호를 앞에 붙여 사용하는데, JDK 1.5부터 지원하는 기능이다.


2. 어노테이션의 용도?

 

컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공

소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공

런타임환경에서 특정 기능을 실행하도록 정보를 제공


3. 어노테이션의 종류

 

★ 내장 어노테이션의 종류

 

@Override

선언한 메서드가 오버라이드 되었음을 나타냄

부모 클래스(혹은 인터페이스)에서 해당 메서드를 찾을 수 없으면 컴파일 에러 발생

 

@Deprecated

해당 메서드가 더이상 사용되지 않음을 표시함.

만약 사용할 경우 컴파일 경고를 발생시킴

 

@SuppressWarnings

선언한 곳의 컴파일 경고를 무시하도록 설정

 

@SafeVarags

같은 가변인자의 매개변수를 사용할때의 경고를 무시 ( Java7이상 )

 

@FunctionalInterface

함수형 인터페이스를 지정하는 어노테이션

만약 메서드가 존재하지 않거나, 2개 이상의 메서드가 존재할경우 컴파일 오류 발생

(default 메서드 제외)

 

 

★ 메타 어노테이션(어노테이션을 위한 어노테이션) 종류 

 

@Target

어노테이션을 정의할 때, 적용대상을 지정하는데 사용

 

@Retention

어노테이션이 유지되는 기간을 정의

 

RetentionPolicy.SOURCE : 컴파일 전까지만 유지 

RetentionPolicy.CLASS : 컴파일러가 클래스를 참조할때까지만 유효

RetentionPolicy.RUNTIME : 런타임시에도 유효 ( JVM에 의해 참조 가능 )

 

@Documented

해당 어노테이션을 Javadoc에 포함시킴

 

@Inherited

이 어노테이션이 적용된 클래스의 자식클래스에도 이 어노테이션을 상속시킴

 

@Repeatable

반복해서 붙일 수 있는 어노테이션을 정의할 때 사용 (Java8 이상)