한 걸음 두 걸음
자바 JAVA ] 어노테이션 Annotation 본문
반응형
어노테이션
@
를 이용하여 작성한 코드에 부가 설명을 하는 것으로, 주석과 비슷한 역할입니다.
가장 흔히 볼 수 있는 어노테이션은 @Override
가 있습니다. 이는 메소드에 쓰이며, 재정의된 함수라는 것을 표시합니다.
이를 사용하면 가독성이 높아지고 소스코드가 보다 명확해집니다.
어노테이션 사용 이유
주석이 있는데 어노테이션을 사용하는 이유는, 주석은 사람을 위한 설명이지만 어노테이션은 사람 뿐만 아니라 컴파일러에게 정보를 제공하는 것이기 때문입니다. 어노테이션 정보를 바탕으로 컴파일러는 코드에 오류가 있는지 확인합니다. 그리고 바이트코드로 변경 시 어노테이션 정보를 포함합니다.
어노테이션 종류
@SuppressWarning
컴파일러의 경고를 무시하라고 개발자에게 알려주는 어노테이션
어노테이션 사용을 더 익혀서 늘려보자 ~_~
- 클래스 어노테이션
- 메소드 어노테이션
- 필드 어노테이션
- 생성자 어노테이션
- 지역변수 어노테이션
어노테이션 만드는 법
어노테이션은
public @interface MyAnnotation{ //@interface는 어노테이션 생성 시 사용하는 어노테이션
}
방법으로 만들 수 있습니다.
이는 클래스, 메소드, 필드, 생성자, 매개변수 모두에 붙일 수 있는데@Target
은 그 중에서도 어떤 것(예, 메소드)에만 쓰일 것인지 제한하는 어노테이션입니다.@Retention
은 컴파일할 때 쓰이는지 런타임때까지 쓰이는지 등을 나타냅니다. (어디까지 살아있을 것인가.)
( source : 컴파일때만 사용됨 class : 클래스파일에 기록되지만 jvm에 로드되지 않음 runtime : 클래스파일에 기록되고 jvm에 로드됨)@Documented
javadocs에 포함시킬지 여부를 적는 어노테이션입니다.
위는 어노테이션을 설명하는 메타 어노테이션입니다.
사용예시
`@Target`
`@Retention`
`@Documented`
public @interface MyAnnotation{
}
반응형
'Language > Java' 카테고리의 다른 글
Intellij ] 공식문서 팝업 나타나게 하기 / intellij documentation popup (1) | 2019.12.19 |
---|---|
BufferedWriter 사용방법 (0) | 2019.12.19 |
자바 JAVA ] 리플렉션 reflection (0) | 2019.11.22 |
자바 JAVA ] 컬렉션 스트림 Stream / 스트림함수 / Optional (0) | 2019.11.22 |
자바 JAVA ] 스레드 thread 병행 프로그래밍 / 운영체제 연관 (0) | 2019.11.22 |