@Target注解使用的Java代码示例
时间: 2024-09-06 14:01:49 浏览: 52
`@Target`注解是Java中的一个元注解,它定义了另一个注解的有效位置或目标。这个注解可以帮助我们控制哪些语言元素(例如类、方法、变量等)允许接受特定的注解。下面是一个简单的例子:
```java
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
// 定义自定义注解MyAnnotation
@interface MyCustomAnnotation {
String value() default "";
}
// 使用@Target注解定义MyCustomAnnotation的目标位置
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME) // 指定注解应在运行时可见
public @interface TargetFieldAnnotation {
MyCustomAnnotation myAnnotation();
}
```
在这个例子中,`TargetFieldAnnotation`注解只能应用于字段(`ElementType.FIELD`)。这意味着如果我们在类或方法上应用`TargetFieldAnnotation`,编译器会报错,因为它只接受作为字段注解。
现在,我们可以这样使用这个注解:
```java
public class ExampleClass {
// 这个字段可以接受TargetFieldAnnotation
@TargetFieldAnnotation(myAnnotation = @MyCustomAnnotation(value = "example"))
private String exampleField;
// 下面这个方法尝试在方法上使用注解会失败,因为这不是它的目标位置
@TargetFieldAnnotation(myAnnotation = @MyCustomAnnotation(value = "notValid")) // 编译错误
public void someMethod() {
// ...
}
}
```
注意,`@Retention(RetentionPolicy.RUNTIME)`确保`MyCustomAnnotation`可以在运行时被访问和修改,这可能会用于动态配置或日志记录等场景。
阅读全文