Java Constructor getGenericParameterTypes()方法及示例
java.lang.reflect.Constructor类 的 getGenericParameterTypes() 方法用于返回一个对象数组,代表该构造器对象上存在的参数类型。该方法返回的数组的排列顺序与该构造函数对象上的参数顺序相同。如果构造函数没有参数,那么该方法返回一个长度为 0 的数组。
语法
public Type[] getGenericParameterTypes()
参数: 此方法不接受任何东西。
返回 :该方法返回一个 Types数组 ,代表底层可执行文件的正式参数类型,按声明顺序排列。
异常: 该方法会抛出以下异常。
- GenericSignatureFormatError:如果通用方法签名不符合The Java™ Virtual Machine Specification中规定的格式。
- TypeNotPresentException:如果底层可执行文件的throws子句指向一个不存在的类型声明。
- MalformedParameterizedTypeException:如果底层可执行文件的throws子句指的是一个因任何原因不能实例化的参数化类型。
下面的程序说明了getGenericParameterTypes()方法:
程序1 :
// Java program to illustrate
// getGenericParameterTypes() method
import java.io.IOException;
import java.lang.reflect.*;
public class GFG {
public static void main(String[] args)
{
// create a class object
Class classObj = shape.class;
// get Constructor object
// array from class object
Constructor[] cons
= classObj.getConstructors();
// get array of GenericParameterTypes
Type[] parameters
= cons[0].getGenericParameterTypes();
// print length of GenericParameterTypes array
System.out.println("Parameters : ");
for (int i = 0; i < parameters.length; i++)
System.out.println(parameters[i]);
}
// demo class
public class shape {
public shape(int a, long b, double c)
{
}
}
}
输出。
Parameters :
class GFG
int
long
double
程序2
// Java program to illustrate
// getGenericParameterTypes() method
import java.lang.reflect.Constructor;
import java.lang.reflect.Type;
public class GFG {
public static void main(String[] args)
{
// create a class object
Class classObj = String.class;
// get Constructor object
// array from class object
Constructor[] cons
= classObj.getConstructors();
// get array of GenericParameterTypes
Type[] params
= cons[0].getGenericParameterTypes();
// print length of GenericParameterTypes array
System.out.println("No of Parameters: "
+ params.length);
}
}
输出。
No of Parameters: 3
参考文献: https://docs.oracle.com/javase/10/docs/api/java/lang/reflect/Constructor.html#getGenericParameterTypes()