- Annotaion: 프로그램 소스코드 안에, 다르프로그램을 위한 정보를, 미리 약속된 형식으로 포함시킨 것.
주석처럼 프로그래밍 언어에 영향을 미치지 않으면서도 다른 프로그램에 유용한 정보를 제공할 수 있다.
- 표준 애너테이션: 자바에서 기본적으로 제공하는 애너테이션들. 첫번째 표의 5개와 두번표의 meta annotation 5개는 표준 annotation.
Annotation | 기능 |
@Override |
컴파일러에게 오버라이딩하는 메서드라는 것을 알린다. @Override 애노테이션을 붙이면, 메서드의 이름을 잘못 적는 실수를 방지할 수 있다. (컴파일러가 같은 이름의 메서드가 조상에 있는지 확인하고 없으면 에러메시지 출력해주기 때문.) ※ 오버라이딩: 조상 클래스로부터 상속받은 메서드의 내용을 자손클래스에 맞게 변경하는 것. |
@Deprecated | 이 애너테이션이 붙은 대상은 다르것으로 대체되었으니 더 이상 사용하지 않는 것을 권한다는 의미. |
@FunctionalInterface | 이 애너테이션을 붙이면 컴파일러가 '함수형 인터페이스'를 올바르게 선언했는지 확인하고, 잘못된 경우 에러를 발생시킨다. |
@SuppressWarnings |
컴파일러가 보여주는 경고메시지가 나타나지 않게 억제해준다. ex) @SuppressWarnings({"deprecation", "unchecked", "varargs"}) |
@SafeVarargs |
메서드에 선언된 가변인자의 타입이 non-reifiable 타입일 경우, "unchecked" 경고가 발생하는데, 해당 코드에 문제가 없다면 @SafeVarargs 써서 이 경고거 뜨지 않게 처리한다. |
Meta Annotation | 기능 |
@Target | 애너테이션이 적용 가능한 대상을 지정. |
@Retention | 애너테이션이 유지(retention)되는 기간 지정. |
@Documented | 애너테이션에 대한 정보가 javadoc으로 작성한 문서에 포함되도록 한다. |
@Inherited | 애너테이션이 자손 클래스에 상속되도록 한다. |
@Repeatable |
@Repeatable이 붙은 애너테이션은, 같은 이름의 애너테이션 여러개가 하나의 대상에 적용될 수 있다. ==> 이 애너테이션들을 하나로 묶어서 다룰 수 있는 앤테이션도 추가로 정의해야 한다. |
@Native |
네이티브 메서드에 의해 참조되는 상수 필드에 붙이는 애너테이션이다. |
- Meta Annotation: 애너테이션을 위한 애너테이션. 즉, 애너테이션에 붙이는 애녀테이션으로, 애너테이션을 정의할 때 애너테이션의 적용대상(target)이나 유지기간(retention)을 지정한다.
출처: 자바의 정석, 남궁성 저
'Programming > Back-end(Java, JSP)' 카테고리의 다른 글
[Java] Comparator 정리 - 사용법, 예시코드, 정렬기준 여러개일 때 (0) | 2020.08.14 |
---|---|
[Java] Comparable 정리 - 사용법, 예시코드 (0) | 2020.08.14 |
[Java] printf 출력서식 - %d, %f, %c, %s (0) | 2020.07.04 |
[JSP] JSTL 용법 (0) | 2020.04.05 |
[JSP] EL(Expression Language) 용법, 연산자 (0) | 2020.04.05 |
VO(DTO), DAO, Service 용어 설명 (0) | 2020.03.18 |
[JSP] 내장객체 (기본객체, Implicit Objects) (0) | 2020.03.12 |
[Java] 생활코딩 Java1 Method 강의 정리 (0) | 2020.01.20 |