遍历参数数组-Java反射
我是java新手,无法理解为什么第二种迭代参数的方法会引发异常。 有趣的是遍历参数数组-Java反射,java,reflection,Java,Reflection,我是java新手,无法理解为什么第二种迭代参数的方法会引发异常。 有趣的是param=null通过,但稍后我会得到ArrayIndexOutofBounds异常。 我看了下面的链接。但这对我没有帮助。 import java.lang.reflect.*; 公共类测试反射{ 公共静态void main(字符串[]args){ Class c=(Class)反映this.Class; System.out.println(“公共类”+c.getName()); System.out.printl
param=null
通过,但稍后我会得到ArrayIndexOutofBounds
异常。
我看了下面的链接。但这对我没有帮助。
import java.lang.reflect.*;
公共类测试反射{
公共静态void main(字符串[]args){
Class c=(Class)反映this.Class;
System.out.println(“公共类”+c.getName());
System.out.println(“{”);
方法methods[]=c.getMethods();
用于(方法m:方法)
{
如果(m.isAccessible())
系统输出打印(“公共”);
其他的
系统输出打印(“专用”);
System.out.print(m.getName()+“(”);
//System.out.println(“参数”);
参数[]params=null;
params=m.getParameters();
//迭代thr参数的方法1
用于(参数p:params)
{
if(p==null)
打破
System.out.print(p.getType()+“”+p.getName()+“”,“”);
}
params=m.getParameters();
//迭代thr参数的方法2
如果(参数!=null)
{
for(int i=0;params[i]!=null;i++)
{
System.out.print(params[i].getType()+“”+params[i].getName());
if(参数[i+1]!=null)
系统输出打印(“,”);
}
}
System.out.println(“);”;
}
System.out.println(“}”);
}
}
你简直是越界了
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(", ");
}
如果您有两个参数,即i
从0
变为1
,则您将尝试访问
params[1]
params[2] // out of bounds
这基本上总是超出范围的,因为您尝试访问的元素数超过数组中的元素数
以下是使用,
正确连接元素的方法:
- 你简直是在越界
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(", ");
}
如果您有两个参数,即i
从0
变为1
,则您将尝试访问
params[1]
params[2] // out of bounds
这基本上总是超出范围的,因为您尝试访问的元素数超过数组中的元素数
以下是使用,
正确连接元素的方法:
- 你简直是在越界
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(", ");
}
如果您有两个参数,即i
从0
变为1
,则您将尝试访问
params[1]
params[2] // out of bounds
这基本上总是超出范围的,因为您尝试访问的元素数超过数组中的元素数
以下是使用,
正确连接元素的方法:
- 你简直是在越界
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(", ");
}
如果您有两个参数,即i
从0
变为1
,则您将尝试访问
params[1]
params[2] // out of bounds
这基本上总是超出范围的,因为您尝试访问的元素数超过数组中的元素数
以下是使用,
正确连接元素的方法:
- 好的,错误在于:
for(int i = 0; params[i].....
如果params为空,则会引发异常。示例:params在元素中具有。尝试获取第0个元素将超出范围
为确保不会发生这种情况,请执行以下操作:
for(int i = 0; i < params.length && params[i]...
for(int i=0;i
好的,错误在于:
for(int i = 0; params[i].....
如果params为空,则会引发异常。例如:params具有in元素。尝试获取第0个元素将超出范围
为确保不会发生这种情况,请执行以下操作:
for(int i = 0; i < params.length && params[i]...
for(int i=0;i
好的,错误在于:
for(int i = 0; params[i].....
如果params为空,则会引发异常。例如:params具有in元素。尝试获取第0个元素将超出范围
为确保不会发生这种情况,请执行以下操作:
for(int i = 0; i < params.length && params[i]...
for(int i=0;i
好的,错误在于:
for(int i = 0; params[i].....
如果params为空,则会引发异常。例如:params具有in元素。尝试获取第0个元素将超出范围
为确保不会发生这种情况,请执行以下操作:
for(int i = 0; i < params.length && params[i]...
for(int i=0;i
在这一行中,如果i大于上一个索引,则会出现异常:
for(int i=0; params[i] != null; i++)
您必须更改为:
for(int i=0; i<params.length; i++)
for(int i=0;i在这一行中,如果i大于上一个索引,则会出现异常:
for(int i=0; params[i] != null; i++)
您必须更改为:
for(int i=0; i<params.length; i++)
for(int i=0;i在这一行中,如果i大于上一个索引,则会出现异常:
for(int i=0; params[i] != null; i++)
您必须更改为:
for(int i=0; i<params.length; i++)
for(int i=0;i在这一行中,如果i大于上一个索引,则会出现异常:
for(int i=0; params[i] != null; i++)
您必须更改为:
for(int i=0; i<params.length; i++)
for(inti=0;i看起来像是在数组上循环并附加“,”除了最后一个条目。下面应该可以
还需要检查边界条件
for(int i=0; i<params.length; i++)
{
if(params[i] != null)
{
System.out.print(params[i].getType()+ " " +params[i].getName());
if(i != params.length-1)
System.out.print(", ");
}
}
for(inti=0;i看起来像是在数组上循环并附加“,”除了最后一个条目。下面应该可以
还需要检查边界条件
for(int i=0; i<params.length; i++)
{
if(params[i] != null)
{
System.out.print(params[i].getType()+ " " +params[i].getName());
if(i != params.length-1)
System.out.print(", ");
}
}
for(inti=0;i看起来像是在数组上循环并附加“,”除了最后一个条目。下面应该可以
还需要检查边界条件
for(int i=0; i<params.length; i++)
{
if(params[i] != null)
{
System.out.print(params[i].getType()+ " " +params[i].getName());
if(i != params.length-1)
System.out.print(", ");
}
}
for(inti=0;i看起来像是在数组上循环并附加“,”除了最后一个条目。下面应该可以
还需要检查边界条件
for(int i=0; i<params.length; i++)
{
if(params[i] != null)
{
System.out.print(params[i].getType()+ " " +params[i].getName());
if(i != params.length-1)
System.out.print(", ");
}
}
用于(int i=0;iThanks,这样我可以使用方法一在所有参数(但最后一个参数除外)之后添加逗号。谢谢,这样我可以使用方法一在所有参数(但最后一个参数除外)之后添加逗号。谢谢,这样我可以使用方法一在所有参数(但最后一个参数除外)之后添加逗号。谢谢。i当方法没有参数时,参数应为null。但是我错了。谢谢。当方法没有参数时,我希望参数为null。但是我错了。