가끔 하늘을 보자: Annotation

2017년 5월 10일 수요일

Annotation

Custom Annotation

선언
@Retention(용도)
@Target(범위)
public @interface XXX {
    ...
}

용도
RetentionPolicy.java (java.lang.annotation)
/**
 * @since 1.5
 */
public enum RetentionPolicy {
    /**
     * Annotations are to be discarded by the compiler.
     * 컴파일러가 사용하고 클래스 파일 안에 포함되지 않음 (단순 주석용, 컴파일러용)
     */
    SOURCE,

    /**
     * Annotations are to be recorded in the class file by the compiler
     * but need not be retained by the VM at run time.  This is the default
     * behavior.
     * 컴파일시 클래스 파일 안에 포함되나 VM에서 무시함
     */
    CLASS,

    /**
     * Annotations are to be recorded in the class file by the compiler and
     * retained by the VM at run time, so they may be read reflectively.
     * 컴파일시 포함되고 VM에서 인식함
     * @see java.lang.reflect.AnnotatedElement
     */
    RUNTIME
}

범위
ElementType.java (java.lang.annotation)
/**
 * @since 1.5
 */
public enum ElementType {
    /** Class, interface (including annotation type), or enum declaration */
    TYPE,

    /** Field declaration (includes enum constants) */
    FIELD,

    /** Method declaration */
    METHOD,

    /** Formal parameter declaration */
    PARAMETER,

    /** Constructor declaration */
    CONSTRUCTOR,

    /** Local variable declaration */
    LOCAL_VARIABLE,

    /** Annotation type declaration */
    ANNOTATION_TYPE,

    /** Package declaration */
    PACKAGE,

    /**
     * Type parameter declaration
     *
     * @since 1.8
     * @hide 1.8
     */
    TYPE_PARAMETER,

    /**
     * Use of a type
     *
     * @since 1.8
     * @hide 1.8
     */
    TYPE_USE
}

댓글 없음:

댓글 쓰기

예약 전쟁 끝? 오늘(5월 9일) 바뀐 숲나들e 휴양림 추첨제 방식과 당첨 확률 높이는 법

  오늘 바뀐 숲나들e 추첨제 AI 도입과 당첨 확률 높이는 꿀팁! 혹시 매번 '광클'에 실패해서 눈물을 머금고 휴양림 예약을 포기하셨던 경험 있으신가요? 저도 주말마다 숲나들e 페이지에서 무한 로딩과 싸우다 결국 빈손으로 돌아섰던 기억...