Java 获取参数类型反射

Java 获取参数类型反射,java,reflection,methods,parameters,Java,Reflection,Methods,Parameters,如何获取参数类型?当我之前尝试只执行classMethods[I].getParameterTypes()时,结果是Ljava.lang.Class@4c5bb434并对每种方法使用不同的值进行重复 classMethods是获取类的所有declaredmethods的方法数组 是,getParameterTypes()返回一个数组-每个参数一个元素。只需使用: for (Class<?> clazz : classMethods[i].getParameterTypes()) {

如何获取参数类型?当我之前尝试只执行
classMethods[I].getParameterTypes()
时,结果是
Ljava.lang.Class@4c5bb434
并对每种方法使用不同的值进行重复


classMethods是获取类的所有declaredmethods的方法数组

是,
getParameterTypes()
返回一个数组-每个参数一个元素。只需使用:

for (Class<?> clazz : classMethods[i].getParameterTypes()) {
    System.out.println("Parameter type " + clazz.getName());
}
for(类clazz:classMethods[i].getParameterTypes()){
System.out.println(“参数类型”+clazz.getName());
}

(当然,根据需要调整输出。)

是的,
getParameterTypes()
返回一个数组-每个参数一个元素。只需使用:

for (Class<?> clazz : classMethods[i].getParameterTypes()) {
    System.out.println("Parameter type " + clazz.getName());
}
for(类clazz:classMethods[i].getParameterTypes()){
System.out.println(“参数类型”+clazz.getName());
}

(当然,根据您的需要调整输出。)

如果您的参数类型是泛型参数,那么这是不可能的,因为Java中的泛型只在编译时考虑。因此,Java泛型只是某种预处理器。

如果参数类型是泛型参数,那么这是不可能的,因为Java中的泛型只在编译时考虑。因此,Java泛型只是某种预处理器。

下面是我要说的。我想你改变了问题::

 for(int i=0; i < classMethods.length;i++) 
    {
     System.out.println(classMethods[i].getName() + " (" + className + ", " 
     + printParameters((Class<String>[])classMethods[i].getParameterTypes()) +  
     ") -> " + classMethods[i].getReturnType());
    }
for(int i=0;i“+classMethods[i].getReturnType());
}
printParameters打印方法参数(如果有):

public static String printParameters(Class<String>[] a)
    {
        String temp="";
        if(a!=null)
        {       

        for(int i=0;i<a.length;i++)
        {
            if(temp!="")
            {
                temp+=", "+a[i].getName();
            }
            else
            {
                temp = a[i].getName();
            }
        }
        }
        return temp;
  }
公共静态字符串打印参数(类[]a)
{
字符串temp=“”;
如果(a!=null)
{       

对于(int i=0;i我想说的是,我想你改变了这个问题::

 for(int i=0; i < classMethods.length;i++) 
    {
     System.out.println(classMethods[i].getName() + " (" + className + ", " 
     + printParameters((Class<String>[])classMethods[i].getParameterTypes()) +  
     ") -> " + classMethods[i].getReturnType());
    }
for(int i=0;i“+classMethods[i].getReturnType());
}
printParameters打印方法参数(如果有):

public static String printParameters(Class<String>[] a)
    {
        String temp="";
        if(a!=null)
        {       

        for(int i=0;i<a.length;i++)
        {
            if(temp!="")
            {
                temp+=", "+a[i].getName();
            }
            else
            {
                temp = a[i].getName();
            }
        }
        }
        return temp;
  }
公共静态字符串打印参数(类[]a)
{
字符串temp=“”;
如果(a!=null)
{       
对于(int i=0;i