Java Constructor getParameterAnnotations()方法及示例

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()

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程