模块 java.base

注解目标


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

如果注释接口 T 上不存在 @Target 元注释,则可以将 T 类型的注解写为任何声明的修饰符。

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

例如,这个 @Target 元注解表示声明的接口本身就是一个元注解接口。它只能用于注解接口声明:

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

@Target 元注释指示声明的类或接口仅用作复杂注释接口声明中的成员类或接口。它不能用于直接注释任何内容:

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

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

  @Target({ElementType.FIELD, ElementType.METHOD, ElementType.FIELD})
  public @interface Bogus {
    ...
  }
 
Java 语言规范:
9.6.4.1 @目标
9.7.4 注释可能出现的地方
9.7.5 同一接口的多个注解
自从:
1.5
  • 必需元素摘要

    必需的元素
    修饰符和类型
    必需元素
    描述
    返回可以应用注解的元素种类的数组。
  • 元素详细信息

    • value

      ElementType [] value
      返回可以应用注解的元素种类的数组。
      返回:
      可以应用注解的元素种类的数组