어노테이션이란?
- 주석처럼 프로그래밍 언어에 영향을 미치지 않으며 유용한 정보를 제공
/**
* The common interface extended by all annotation types. Note that an
* interface that manually extends this one does <i>not</i> define
* an annotation type. Also note that this interface does not itself
* define an annotation type.
*
* More information about annotation types can be found in section 9.6 of
* <cite>The Java™ Language Specification</cite>.
*
* The {@link java.lang.reflect.AnnotatedElement} interface discusses
* compatibility concerns when evolving an annotation type from being
* non-repeatable to being repeatable.
*
* @author Josh Bloch //Annotation 유용한 정보
* @since 1.5 //Annotaion 유용한 정보
*/
public interface Annotation {
-어노테이션의 사용 예
@Test // 이 메서드가 테스트 대상임을 테스트 프로그램에 알린다.
public void method(){
}
표준 어노테이션
- java에서 제공하는 어노테이션
@Override
- 선언한 메서드가 오버라이드 되었다는 것을 나타냅니다.
- 만약 상위(부모) 클래스(또는 인터페이스)에서 해당 메서드를 찾을 수 없다면 컴파일 에러를 발생 시킵니다
@Deprecated
- 해당 메서드가 더 이상 사용되지 않음을 표시합니다.
- 만약 사용할 경우 컴파일 경고를 발생 키십니다.
@SuppressWarnings
- 선언한 곳의 컴파일 경고를 무시하도록 합니다.
@SafeVarargs
- Java7 부터 지원하며, 제너릭 같은 가변인자의 매개변수를 사용할 때의 경고를 무시합니다.
@FunctionalInterface
- Java8 부터 지원하며, 함수형 인터페이스를 지정하는 어노테이션입니다.
- 만약 메서드가 존재하지 않거나, 1개 이상의 메서드(default 메서드 제외)가 존재할 경우 컴파일 오류를 발생 시킵니다.
@Native
- native메소드에 참조되는 상수 앞에 붙인다.(JDK1.8)
| 메타어노테이션 어노테이션을 만들때 사용 |
|
| @Target * |
애너테이션이 적용 가능한 대상을 지정한다. |
@Documented * |
애너테이션 정보가 javadoc으로 작성된 문서에 포함되게 한다. |
@Inherited * |
애너테이션이 자손 클래스에 상속 되도록 한다. |
@Retention * |
애너테이션이 유지되는 범위를 지정하는데 사용한다. |
@Repeatable * |
애너테이션을 반복적으로 적용하도록 한다. |
'하.. > java' 카테고리의 다른 글
| ch12 메타 어노테이션 (0) | 2021.12.25 |
|---|---|
| ch12 표준 어노테이션 (0) | 2021.12.25 |
| ch12 열거형에 멤버 추가하기 (0) | 2021.12.25 |
| ch12 열거형(enum) 열거형의 조상 (0) | 2021.12.25 |
| ch12 제네릭 타입의 형변환 (0) | 2021.12.25 |