Module java.base

Annotation 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 MemberInterface {
        ...
    }
 

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

    @Target({ElementType.FIELD, ElementType.METHOD, ElementType.FIELD})
    public @interface Bogus {
        ...
    }
 
参见 Java 语言规范:
9.6.4.1 @Target
9.7.4 注解可以出现的位置
9.7.5 相同接口的多个注解
自版本:
1.5
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    返回注解接口可以应用于的元素种类数组。
  • Element Details

    • value

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