注解上通过反射获取被注解的方法的返回值
时间: 2024-02-28 18:55:24 浏览: 49
要通过反射获取被注解的方法的返回值,可以使用Java中的Method类和Annotation类。具体步骤如下:
1. 获取被注解的方法的Method对象。
2. 使用Method对象的invoke方法调用该方法,得到方法的返回值。
3. 使用Annotation类的方法获取注解的属性值。
代码示例:
```
// 定义注解
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface MyAnnotation {
String value();
}
// 定义带注解的类
public class MyClass {
@MyAnnotation("hello")
public String sayHello() {
return "Hello World!";
}
}
// 获取被注解的方法的返回值
Class<?> clazz = MyClass.class;
Method method = clazz.getMethod("sayHello");
Object result = method.invoke(new MyClass());
// 获取注解的属性值
MyAnnotation annotation = method.getAnnotation(MyAnnotation.class);
String value = annotation.value();
System.out.println("返回值:" + result); // 输出:Hello World!
System.out.println("注解属性值:" + value); // 输出:hello
```
阅读全文