我有错误ArrayIndexOutofBounds
。请帮帮我,我是java的新手。
class Sum{
int a,b,c;
void assign (int x, int y){
a=x;
b=y;
}
void add(){
c=a+b;
}
void disp(){
System.out.println("Sum of"+a+"and"+b+"is ="+c);
}
}
class SumDemo{
public static void main(String k[]){
int x=Integer.parseInt (k [0]);
int y=Integer.parseInt (k [1]);
Sum s0=new Sum();
s0.assign(x,y);
s0.add();
s0.disp();
}
}
这是代码。请帮我 。为什么会出现这种错误?
答案 0 :(得分:1)
为什么会出现此错误?
发生错误是因为您尝试访问没有元素零的数组的元素零。 ArrayIndexOutOfBoundsException
的javadoc解释了这一点。该消息提供了代码尝试使用的实际索引。 (javadocs没有说明消息包含的内容,但这是我记得的所有JVM的观察行为。)
所以一定是这一行:
int x=Integer.parseInt (k [0]);
您的代码应测试k
数组(k.length
)的长度,以确保(至少)有2个命令行参数。
你写道:
......错误在于我没有通过运行时间值......
这是一个诊断。另一个是您的程序不检查它是否使用正确数量的命令行参数调用它。 (两种诊断都是正确的......以他们自己的方式。)
答案 1 :(得分:0)
当你运行它时,你没有传递k [0]和k [1]所需的命令行参数。
if (k.length < 2) {
System.err.println("Missing arguments x and y, exiting.");
System.exit(1);
}
int x=Integer.parseInt (k [0]);
int y=Integer.parseInt (k [1]);
答案 2 :(得分:0)
如果您没有传递任何程序参数,这些行是有问题的:
int x=Integer.parseInt (k [0]);
int y=Integer.parseInt (k [1]);
如果从命令提示符运行,请使用:
java SumDemo 1 2
如果您使用的是Eclipse IDE,则可以使用Run Configurations
答案 3 :(得分:0)
唯一的原因可能是您在运行程序时没有输入参数。
以java SubDemo 2 3
运行