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