상세 컨텐츠

본문 제목

[java]자바_Annotation(애노테이션/어노테이션)

java_자바

by 쫑메이 2020. 7. 24. 00:38

본문

 

 

 

 

 

 

 

 

 

 


 

 

 

 


자바_ Annotation_키워드


 

 

자바 개발을 하다 보면 클래스 또는 메서드 또는 변수 앞에

@Override 같은 @ 표시를 많이 봤을 텐데

이 어노테이션은 JEE5(Java Platform, Enterprise Edition 5)부터

새롭게 추가된 요소

 

 

 

 

이 어노테이션으로 인해 데이터의 유효성 검사 등을 쉽게 알 수 있고,

이와 관련한 코드가 깔끔해지게 된다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


자바_ Annotation (애노테이션/어노테이션)이란?


 

 

 

★애노테이션의 사전적 의미는 ‘주석’이다

개발자가 읽기 위한 주석이 아니라

★ JVM, 컴파일러, 프레임워크 등에게 전달하는 일종의 메타데이터

메타데이터란 다른 데이터를 설명해 주는데 데이터,

즉 부가적인 정보를 추가하기 위한 것이다

 

 

 

 

 

 

 

 

 

 

 

 

 


자바 JDK 기본

Annotation (애노테이션/어노테이션) 종류


 

 

 

<JDK 기본 애노테이션_종류 및 설명>

@Override

선언한 메서드가 오버라이드 되었다는 것을 나타낸다.

만약 상위(부모) 클래스(또는 인터페이스)에서 해당 메서드를 찾을 수 없다면

컴파일 에러를 발생시킨다.

 

 

 

@Deprecated

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

만약 사용할 경우 컴파일 경고를 발생시킨다.

 

 

@SuppressWarnings

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

 

 

@SafeVarargs

Java7 부터 지원하며, 제너릭 같은 가변인자의 매개변수를

사용할 때의 경고를 무시합니다.

 

 

@FunctionalInterface

Java8부터 지원하며, 함수형 인터페이스를 지정하는

어노테이션

만약 메서드가 존재하지 않거나, 1개 이상의 메서드(default 메서드 제외)가 존재할 경우

컴파일 오류를 발생 시킨다.

 

 

 

 

 

 

 

 

 


 

자바 JDK기본_ 메타 Annotation (어노테이션):

종류


 

 

 

@Retention

자바 컴파일러가 어노테이션을 다루는 방법을 기술하며, 특정 시점까지 영향을 미치는지를 결정

 

 

 

@Retention 종류

RetentionPolicy.SOURCE : 컴파일 전까지만 유효. (컴파일 이후에는 사라짐)

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

RetentionPolicy.RUNTIME : 컴파일 이후에도 JVM에 의해 계속 참조가 가능. (리플렉션 사용)

 

 


 

@Target

어노테이션이 적용할 위치를 선택

 

 

 

@Target_ 종류

ElementType.PACKAGE : 패키지 선언

ElementType.TYPE : 타입 선언

ElementType.ANNOTATION_TYPE : 어노테이션 타입 선언

ElementType.CONSTRUCTOR : 생성자 선언

ElementType.FIELD : 멤버 변수 선언

ElementType.LOCAL_VARIABLE : 지역 변수 선언

ElementType.METHOD : 메서드 선언

ElementType.PARAMETER : 전달인자 선언

ElementType.TYPE_PARAMETER : 전달인자 타입 선언

ElementType.TYPE_USE : 타입 선언

 

 

@Documented

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

 

@Inherited

어노테이션의 상속을 가능하게 함

 

@Repeatable

Java8부터 지원하며, 연속적으로 어노테이션을 선언할 수 있게 해줌

 

 

 

어노테이션은 기본적으로 인터페이스 형태를 취하고 있으며,

단지 interface 앞에 @ 표시를 해준다

 

어노테이션의 필드에서는 enum, String이나 기본 자료형,

기본 자료형의 배열을 사용할 수 있다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

ㅣ읽느라 수고 많으셨어요~ㅣ


 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

부족한 글을 읽어주셔서 감사드립니다

아직 부족한 게 많으니

틀린 곳이 있다면

조언의 말씀 꼭 부탁드립니다!!!!

 

 

 

 

 

 

 

 

반응형

관련글 더보기