JDK1.8源码解读之Target

340 阅读1分钟

前言

  • 指示注释类型适用的上下文。
  • 在JLS 9.6.4.1中指定了可以在其中应用注释类型的声明上下文和类型上下文,并在源代码中用{@link ElementType java.lang.annotation.ElementType}的枚举常量表示。
  • 如果注释类型{@code T}上不存在{@code @Target}元注释,则可以将类型{@code T}的注释写为除类型参数声明之外的任何声明的修饰符。
  • 如果存在{@code @Target}元注释,则编译器将根据JLS 9.7.4强制执行{@code ElementType}枚举常量指示的使用限制。

源码

package java.lang.annotation;
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
    /**
     * 返回注释类型可以应用于的元素种类的数组。 
     */
    ElementType[] value();
}
```