@Documented @Retention(value=RUNTIME) @Target(value=ANNOTATION_TYPE) public @interface Target
java.lang.annotation.ElementType
表示 。
如果注释类型T
上不存在@Target
元T
,则可以将类型为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 {
...
}
Modifier and Type | Required Element and Description |
---|---|
ElementType[] |
value
返回注释类型可应用于的元素种类的数组。
|
public abstract ElementType[] value