본문 바로가기

자바 (Java)/요약

Chpt 12. 지네릭스, 열거형, 애너테이션 - 주제 4. 애너테이션

728x90

1. 애너테이션

 

애너테이션은 다른 프로그램에게 유용한 정보를 전달하는 역할을 한다. 애너테이션 그리고 소스코드의 주석은 다음과 같은 비슷한 특징을 갖는다.

 

  기능 도움을 제공하는 프로그램
@ 소스 코드 + 설정 파일 (XML) 컴파일러, JUnit 테스트 프로그램, 그 외
/** ~ */ 소스 코드 + 소스 코드 설명 문서 (HTML) javadoc.exe 

 

1) 표준 애너테이션 : 기본적으로 제공하는 애너테이션

 

애너테이션 알려주는 대상 특징
@Override 컴파일러 오버라이딩 하는 메서드에 붙인다.
@Deprecated   앞으로 사용하지 않을 것을 권장하는 메서드에 붙인다.
@FunctionalInterface 컴파일러 함수형 인터페이스에 붙인다.
@SuppressWarnings 컴파일러 경고 메시지를 나타나지 않게 해준다.
경고 확인의 기능을 갖는다.
경고에는 "deprecation", "unchecked", "rawtypes", "varargs"가 있다.
둘 이상의 경고가 있을 경우 {}로 묶는다.

 

2) 메타 애너테이션 : 애너테이션을 위한 애너테이션

 

애너테이션 특징
@Target 애너테이션을 적용할 대상을 지정해준다.
@Retention 애너테이션이 유지되는 기간을 정해준다.

 

2. 애너테이션 타입 정의

 

@interface 애너테이션 이름 {

    타입 요소 이름(); // 추상 메서드 = 요소

    ...

}

 

[참고] @Override (애너테이션), Override (애너테이션 타입)

 

(1) 요소

요소 (추상 메서드)는 구현해주지 않아도 된다. 
각 요소는 기본값을 가질 수 있다. 
- 값이 여러개인 경우 {}로 표기해준다.
- 값이 하나인 경우 {} 생략 가능하다.

요소의 타입 - 기본형, String, enum, 애너테이션, Class만 허용
()안에 매개변수 선언할 수 없음
예외를 선언할 수 없음
요소를 타입 매개변수로 정의할 수 없음

(2) 애너테이션을 사용하는 쪽

- 요소 이름=값의 형태로 지정해준다.
    - 요소가 오직 value 하나일 때는 값만 적어도 된다. 
    - 요소의 타입이 배열인 경우 {}로 표기해준다.
        - 이때 값이 하나일 때 {} 생략 가능하다.
- 요소의 순서는 상관 없다. 

 

반응형