如何以编程方式读取方法的 return 类型上定义的注释
How to read the annotations defined on return type of a Method programmatically
我们如何以编程方式读取方法的 return 类型上定义的注释?
我尝试在 java.lang.reflect.Method 中寻找方法,但我只能找到读取 return 值的 class 类型或读取通用 information.Is 的方法还有读取注释的方法吗?
考虑这个方法定义:-
public class ABC {
public static @MyAnnotation @AnotherAnnotation String main(String args[]) {
return null;
}
所以我的问题是:- 我们可以读取 return 类型字符串中定义的注释吗?
注释如下:-
MyAnnotation.java
@Target(value = ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
public String[] author() default {"Its me","Its me"};
}
AnotherAnnotation.java
@Target(value = ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AnotherAnnotation {
}
您似乎对注释的位置感到困惑:
public static @MyAnnotation @AnotherAnnotation String main(String args[])
这两个注解不是注解方法的return类型。他们正在注释方法本身。以上相当于
@MyAnnotation
@AnotherAnnotation
public static String main(String args[])
甚至
public @MyAnnotation @AnotherAnnotation static String main(String args[])
您可以使用 getAnnotations()
or getDeclaredAnnotations()
.
从 Method
对象中获取它们
我们如何以编程方式读取方法的 return 类型上定义的注释?
我尝试在 java.lang.reflect.Method 中寻找方法,但我只能找到读取 return 值的 class 类型或读取通用 information.Is 的方法还有读取注释的方法吗?
考虑这个方法定义:-
public class ABC {
public static @MyAnnotation @AnotherAnnotation String main(String args[]) {
return null;
}
所以我的问题是:- 我们可以读取 return 类型字符串中定义的注释吗?
注释如下:-
MyAnnotation.java
@Target(value = ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
public String[] author() default {"Its me","Its me"};
}
AnotherAnnotation.java
@Target(value = ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AnotherAnnotation {
}
您似乎对注释的位置感到困惑:
public static @MyAnnotation @AnotherAnnotation String main(String args[])
这两个注解不是注解方法的return类型。他们正在注释方法本身。以上相当于
@MyAnnotation
@AnotherAnnotation
public static String main(String args[])
甚至
public @MyAnnotation @AnotherAnnotation static String main(String args[])
您可以使用 getAnnotations()
or getDeclaredAnnotations()
.
Method
对象中获取它们