Notice
Recent Posts
Recent Comments
Link
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

SSinsa

5. 어노테이션 이용하기 본문

Java/Java Programming

5. 어노테이션 이용하기

SSinsa 2020. 2. 5. 01:42
어노테이션을 사용하는 예를 들어라.

어노테이션은 메타데이터!

(메타데이터란 애플리케이션이 처리해야 할 데이터가 아니라, 컴파일과 실행과정에서 코드를 어떻게 컴파일하고 처리할 것인지를 알려주는 정보)

 

# 어노테이션의 용도

  • 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공 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 어노테이션은 어떤 역할을 하는가?

# 어노테이션의 세가지 기본 범주

  1. Marker 어노테이션
    • 변수가 없음
    • 이름으로 구분, 추가 데이터 없이 나타남
  2. Single-value 어노테이션
    • 데이터를 제공
    • 싱글 비트 데이터를 제공, 따라서 간단한 신택스를 사용할 수 있음
  3. 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