SSinsa
5. 어노테이션 이용하기 본문
어노테이션을 사용하는 예를 들어라.
어노테이션은 메타데이터!
(메타데이터란 애플리케이션이 처리해야 할 데이터가 아니라, 컴파일과 실행과정에서 코드를 어떻게 컴파일하고 처리할 것인지를 알려주는 정보)
# 어노테이션의 용도
- 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공 ex) @Override
- 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공 ex) 빌드 시 자동으로 XML설정 파일을 생성하거나, 배포를 위해 JAR 압축 파일을 생성하는데에도 사용
- 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공 ex) 실행 시 클래스의 역하을 정의
# 어노테이션 적용법
@AnnotationName(elementName1 = "값");
# 어노테이션 적용대상
| ElementType 열거 상수 | 적용대상 |
| TYPE | 클래스, 인터페이스, 열거타입 |
| ANNOTATION_TYPE | 어노테이션 |
| FIELD | 필드 |
| CONSTRUCTOR | 생성자 |
| METHOD | 메소드 |
| LOCAL_VARIABLE | 로컬변수 |
| PACKAGE | 패키지 |
# 어노테이션 정의
@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD})
public @interface AnnotationName{
}
이때 클래스, 피드, 메소드만 어노테이션을 적용할 수 있고 생성자는 적용할 수 없다.
@AnnotationName
public class ClassName {
@AnnotationName
private String fieldName;
//@AnnotationName(x)
public ClassName() {}
@AnnotationName
public void methodName() {}
}
@Override 어노테이션은 어떤 역할을 하는가?
# 어노테이션의 세가지 기본 범주
- Marker 어노테이션
- 변수가 없음
- 이름으로 구분, 추가 데이터 없이 나타남
- Single-value 어노테이션
- 데이터를 제공
- 싱글 비트 데이터를 제공, 따라서 간단한 신택스를 사용할 수 있음
- Full 어노테이션
- 다중 데이터 멤버를 갖음
- 전체 신택스를 사용해야함
오버라이드 어노테이션은 1번에 해당
You can also create Marker Annotations. A marker annotation is simply an annotation that does not have any members. @Override, for example, is a marker annotation.
'Java > Java Programming' 카테고리의 다른 글
| 9. JUnit으로 테스팅하기 (0) | 2020.02.18 |
|---|---|
| 4. 오토박싱과 언박싱 이해하기 (0) | 2020.02.05 |
| 3. 제네릭 이해하기 (0) | 2020.01.15 |
| 2. String 이용하기 (0) | 2020.01.15 |
| 1. 배열과 리스트의 관계 (0) | 2020.01.15 |