【发布时间】:2014-07-02 05:57:42
【问题描述】:
我是 java 新手,无法弄清楚为什么第二种遍历参数的方法会引发异常。
有趣的是param !=null 通过但我后来得到ArrayIndexOutofBounds 异常。
我查看了以下链接。但这对我没有帮助。
Iterating through method parameters
import java.lang.reflect.*;
public class TestReflection {
public static void main(String[] args) {
Class<ReflectThis> c = (Class<ReflectThis>)ReflectThis.class;
System.out.println("public class " + c.getName());
System.out.println("{");
Method methods[] = c.getMethods();
for(Method m : methods)
{
if(m.isAccessible())
System.out.print(" public ");
else
System.out.print(" private ");
System.out.print(m.getName()+"(");
//System.out.println("Parameteres");
Parameter[] params = null;
params = m.getParameters();
//method 1 for iterating thr params
for(Parameter p : params)
{
if(p == null)
break;
System.out.print(p.getType()+ " " +p.getName()+",");
}
params = m.getParameters();
//method 2 for iterating thr params
if(params != null)
{
for(int i=0; params[i] != null; i++)
{
System.out.print(params[i].getType()+ " " +params[i].getName());
if(params[i+1] != null)
System.out.print(", ");
}
}
System.out.println(");");
}
System.out.println("}");
}
}
【问题讨论】:
标签: java reflection