본문 바로가기

하../java

ch12 어노테이션이란?

어노테이션이란?

- 주석처럼 프로그래밍 언어에 영향을 미치지 않으며 유용한 정보를 제공

/**
 * 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&trade; 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