java如何获取Annotation内部属性值
时间: 2023-08-11 12:05:46 浏览: 126
在 Java 中,可以使用反射机制来获取 Annotation 内部属性值。
假设我们有一个自定义注解 `@MyAnnotation`,其中包含一个属性 `value`,可以按照以下方式获取 `@MyAnnotation` 中 `value` 属性的值:
```java
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface MyAnnotation {
String value();
}
public class MyClass {
@MyAnnotation(value = "Hello, world!")
public void myMethod() {
// ...
}
public static void main(String[] args) throws Exception {
// 获取 MyClass 类中 myMethod 方法上的 MyAnnotation 注解
Method method = MyClass.class.getMethod("myMethod");
MyAnnotation annotation = method.getAnnotation(MyAnnotation.class);
// 获取 MyAnnotation 注解中 value 属性的值
String value = annotation.value();
System.out.println(value); // 输出 "Hello, world!"
}
}
```
在上面的例子中,我们使用 `getMethod()` 方法获取 `MyClass` 类中名为 `myMethod` 的方法,然后使用 `getAnnotation()` 方法获取该方法上的 `@MyAnnotation` 注解。接着,我们使用 `value()` 方法获取注解中 `value` 属性的值。
需要注意的是,获取注解中属性值的方法名与属性名相同,例如 `@MyAnnotation` 中的 `value` 属性,对应的获取方法名为 `value()`。如果注解中没有定义名为 `value` 的属性,则需要使用完整的属性名来获取属性值。
阅读全文