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

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

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

Java.lang.reflect.Constructor 类getGenericParameterTypes()方法用于返回一个对象数组,这些对象表示此构造函数对象上存在的参数类型。此方法返回的数组的排列顺序与此构造函数对象上存在的参数顺序相同。如果构造函数没有参数,则该方法返回一个长度为 0 的数组。

句法:

public Type[] getGenericParameterTypes()

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

Return :此方法按声明顺序返回表示底层可执行文件的形式参数类型的类型数组

异常:此方法抛出以下异常:

  • GenericSignatureFormatError:如果泛型方法签名不符合Java™ 虚拟机规范中指定的格式。
  • TypeNotPresentException:如果底层可执行文件的 throws 子句引用了不存在的类型声明。
  • MalformedParameterizedTypeException:如果底层可执行文件的 throws 子句引用了由于任何原因无法实例化的参数化类型。

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

// 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

方案二:

// 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: Java/lang/reflect/Constructor.html#getGenericParameterTypes()