模块  java.base
软件包  java.lang.annotation

Annotation Type Target


  • @Documented
    @Retention(RUNTIME)
    @Target(ANNOTATION_TYPE)
    public @interface Target
    指示注释类型适用的上下文。 可以应用注释类型的声明上下文和类型上下文在JLS 9.6.4.1中指定,并在源代码中由枚举常量java.lang.annotation.ElementType表示

    如果注释类型T上不存在@Target元注释,则可以将类型T的注释编写为除类型参数声明之外的任何声明的修饰符。

    如果存在@Target元注释,则编译器将强制执行ElementType枚举常量指示的使用限制,与JLS 9.7.4一致。

    例如,此@Target元注释表示声明的类型本身是元注释类型。 它只能用于注释类型声明:

      @Target(ElementType.ANNOTATION_TYPE)
        public @interface MetaAnnotationType {
            ...
        } 

    @Target元注释表示声明的类型仅用作复杂注释类型声明中的成员类型。 它不能用于直接注释任何东西:

      @Target({})
        public @interface MemberType {
            ...
        } 

    单个ElementType常量在@Target批注中出现多次是编译时错误。 例如,以下@Target元注释是非法的:

      @Target({ElementType.FIELD, ElementType.METHOD, ElementType.FIELD})
        public @interface Bogus {
            ...
        } 
    从以下版本开始:
    1.5
    See The Java™ Language Specification:
    9.6.4.1 @Target,9.7.4可能出现注释的情况,9.7.5相同类型的多个注释
    • Required Element Summary

      Required Elements  
      变量和类型 Required Element 描述
      ElementType[] value
      返回可应用注释类型的元素种类的数组。
    • Element Detail

      • value

        ElementType[] value
        返回可应用注释类型的元素种类的数组。
        结果
        可以应用注释类型的元素种类的数组