본문 바로가기
컴퓨터 언어/JAVA

[JAVA] 애너테이션(Annotation)

by 테크케찰 2020. 6. 14.

이번 포스트는 남궁 성님의 "Java의 정석"이란 책을 참고하여 작성하였습니다.

글 내용 중 오류나 수정 사항이 있으면 댓글로 남겨주시면 감사드리겠습니다.

 

@Override
    protected void onCreate(Bundle savedInstanceState) {	}

안드로이드 스튜디오를 이용해 보신 분들은 이러한 구문을 상당히 많이 마주쳐보셨을 것입니다,

저 역시 이런 문장을 많이 봤는데요, 오늘은 @Override에 대해서 살펴보도록 하겠습니다.

처음에는 별로 신경을 쓰지 않았는데요, 애너테이션에 대해서 공부를 하면서 이 부분을 다시 살펴보게 되었습니다.

 

1. 애너테이션이란?

애너테이션은 주석과 비슷한 역할을 합니다.

코드에 실질적으로 영향을 미치지는 않고, 메서드에 대한 정보를 제공해주는 역할을 합니다.

 

2. 표준 애너테이션

표준 애너테이션은 자바에서 기본적으로 제공해주는 애너테이션입니다.

@Override 메서드가 오버라이딩을 한다고 알림
@Deprecated 앞으로 사용하지 않을 것을 권장
@SupressWarnings 특정 경고 메시지가 나타나지 않도록
@SafeVarargs 지네릭스 타입의 가변인자에 사용
@FunctionalInterface 함수형 인터페이스라는 것을 알림
@Native native 메서드에 참조되는 상수 앞에 붙임

 

3. 메타 애너테이션

메타 애너테이션이란 애너테이션에 붙이는 애너테이션입니다.

@Target 애너테이션이 적용 가능한 대상을 지정
@Documented 애너테이션에 대한 정보가 javadoc으로 작성한 문서에 포함되게 함
@Inherited 애너테이션이 자손 클래스에 상속되도록
@Retention 애너테이션이 유지되는 범위 지정
@Repeatable 애너테이션을 반복하여 적용할 수 있도록

표준 애너테이션과 메타 애너테이션에 대한 보다 자세한 내용은 아래 링크에서 보실 수 있으니 참고하시면 좋을 것 같습니다.

https://docs.oracle.com/javase/tutorial/java/annotations/predefined.html

 

Predefined Annotation Types (The Java™ Tutorials > Learning the Java Language > Annotations)

The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. See JDK Release Notes for information about new fe

docs.oracle.com

 

 

'컴퓨터 언어 > JAVA' 카테고리의 다른 글

[JAVA] 쓰레드(Thread) (2)  (0) 2020.06.18
[JAVA] 쓰레드(Thread) (1)  (0) 2020.06.17
[JAVA] 열거형(enums)  (0) 2020.06.14
[JAVA] 지네릭스(Generics)  (0) 2020.06.11
[JAVA] 현재 날짜, 시간 구하기  (0) 2020.06.08