JDK 5에서 제공하는 메모: Target, Inherited 및 Documented의 차이점

1448 단어 JDK주해
JDK 5는 Retention 외에 Target, Inherited, Documented 등 세 가지 메모를 제공합니다.
Target 목표인 Target 주석이 어디에 사용되는지 주석이 사용할 시기, 즉 주석이 적용되는 프로그램 요소의 종류를 정의합니다.콜아웃 형식 선언에 Target 메타콜이 없으면 선언된 형식은 프로그램 요소에 사용할 수 있습니다.이러한 메타메모가 있으면 컴파일러가 지정한 사용 제한을 강제로 실행합니다.
Target은 다음과 같이 정의됩니다.

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
  ElementType[] value();
}
Target은 하나의 value 속성만 있고 유형은 열거 유형인 ElementType입니다.ElementType 선언은 다음과 같습니다.

public enum ElementType {
  /**  、 ( )  */
  TYPE,
  /**  ( ) */
  FIELD,
  /**   */
  METHOD,
  /**   */
  PARAMETER,
  /**   */
  CONSTRUCTOR,
  /**   */
  LOCAL_VARIABLE,
  /**   */
  ANNOTATION_TYPE,
  /**   */
  PACKAGE
}
Documented 메모는 javadoc을 만들 때 메모 정보를 문서에 넣을지 여부를 나타냅니다.메모가 선언할 때 @Documented를 사용하면 javadoc를 만들 때 메모 정보가 javadoc에 추가됩니다.메모는 다음과 같이 선언됩니다.

@Documented
@Retention(value=RUNTIME)
@Target(value=ANNOTATION_TYPE)// , 
public @interface Documented {}
Inherited 메모는 다음과 같이 메타 메모입니다.

@Documented
@Retention(value=RUNTIME)
@Target(value=ANNOTATION_TYPE)
public @interface Inherited {}
Inherited 메모는 메모가 이불류로 상속되는지 여부를 나타내며 기본적으로 상속되지 않습니다.메모가 선언될 때 @Inherited 메모를 사용하면 메모가 사용된 클래스의 하위 클래스가 상속됩니다.

좋은 웹페이지 즐겨찾기