Java Constructor getParameterAnnotations()方法及示例
构造函数 类的 getParameterAnnotations() 方法用于获取一个二维的注释数组,代表该构造函数的正式参数的注释。如果构造函数不包含参数,将返回一个空数组。如果构造函数包含一个或多个参数,那么将返回一个二维注解数组。对于没有注释的参数,这个二维数组的嵌套数组将是空的。该方法返回的注释对象是可序列化的。由该方法返回的数组可以很容易地被修改。
语法
public Annotation[][] getParameterAnnotations()
参数: 该方法不接受任何东西。
返回值: 该方法返回一个 数组 ,代表该对象所代表的可执行文件的正式参数和隐式参数的注释,按声明顺序排列。
下面的程序说明了getParameterAnnotations()方法:
程序1 :
// Java program to demonstrate// Constructor.getParameterAnnotations() method import java.lang.annotation.Annotation;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.reflect.Constructor;import java.util.Arrays; public class GFG { public static void main(String... args) throws NoSuchMethodException { // Create Constructor Object Constructor[] constructors = Test.class.getConstructors(); // get Annotation array Annotation[][] annotations = constructors[0].getParameterAnnotations(); System.out.println("Parameter annotations -->"); System.out.println(Arrays.deepToString(annotations)); }}class Test { public Test(@Properties Object config) { }} @Retention(RetentionPolicy.RUNTIME)@interface Properties {}
输出。
Parameter annotations -->[[@Properties()]]
程序2
// Java program to demonstrate// Constructor.getParameterAnnotations() method import java.lang.annotation.Annotation;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.reflect.Constructor; public class GFG { public static void main(String... args) throws NoSuchMethodException { // Create Constructor Object Constructor[] constructors = GfgDemo.class.getConstructors(); // get Annotation array Annotation[][] annotations = constructors[0].getParameterAnnotations(); System.out.println("Parameter annotations -->"); for (Annotation[] ann : annotations) { for (Annotation annotation : ann) { System.out.println(annotation); } } }}class GfgDemo { public GfgDemo(@Path Path path) { }} @Retention(RetentionPolicy.RUNTIME)@interface Path {}输出。
Parameter annotations -->@Path()
参考文献: https://docs.oracle.com/javase/10/docs/api/java/lang/reflect/Constructor.html#getParameterAnnotations()
