@Target注解
@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 注解中增加相应的元素类型即可。