📜  Java中的构造函数 getParameterAnnotations() 方法及示例

📅  最后修改于: 2022-05-13 01:55:23.794000             🧑  作者: Mango

Java中的构造函数 getParameterAnnotations() 方法及示例

Constructor类的getParameterAnnotations()方法用于获取一个二维 Annotation 数组,该数组表示该 Constructor 的形参上的注解。如果构造函数不包含参数,则将返回一个空数组。如果 Constructor 包含一个或多个参数,则将返回一个二维 Annotation 数组。这个二维数组的嵌套数组对于没有注释的参数将为空。该方法返回的注解对象是可序列化的。可以轻松修改此方法返回的数组数组。

句法:

public Annotation[][] getParameterAnnotations()

参数:此方法不接受任何内容。

返回值:此方法返回一个数组数组,这些数组表示此对象表示的可执行文件的形式和隐式参数上的注释,按声明顺序。

下面的程序说明了 getParameterAnnotations() 方法:
方案一:

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

方案二:

// 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: Java()