@Target
是一个 Java 注解,用于指定注解的应用范围,即注解可以应用到哪些元素上。该注解可以用于自定义注解上,指定该注解可以应用到哪些类型的元素上。
@Target
注解包含一个 ElementType[]
类型的属性 value
,用于指定注解可以应用到的元素类型。常用的元素类型包括:
ElementType.TYPE
:表示该注解可以应用到类、接口、枚举、注解类型等上。ElementType.FIELD
:表示该注解可以应用到字段上。ElementType.METHOD
:表示该注解可以应用到方法上。ElementType.PARAMETER
:表示该注解可以应用到方法参数上。ElementType.CONSTRUCTOR
:表示该注解可以应用到构造方法上。ElementType.LOCAL_VARIABLE
:表示该注解可以应用到局部变量上。ElementType.ANNOTATION_TYPE
:表示该注解可以应用到注解类型上。ElementType.PACKAGE
:表示该注解可以应用到包上。
例如,以下代码定义了一个自定义注解 MyAnnotation
,使用 @Target
注解指定该注解可以应用到类、方法、字段上:
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
public @interface MyAnnotation {
// ...
}
在上面的代码中,使用 @Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
指定 MyAnnotation
注解可以应用到类、方法、字段上。在实际应用中,如果需要将 MyAnnotation
注解应用到其他元素上,例如构造方法或局部变量上,可以在 @Target
注解中增加相应的元素类型即可。