Module  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  
      Modifier and Type Required Element 描述
      ElementType[] value
      返回注释类型可应用于的元素种类的数组。
    • Element Detail

      • value

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