我正在通过一本书学习 Java。有这个练习我无法正常工作。它使用 java 类 Double 添加两个 double 。当我尝试在 Eclipse 中运行这段代码时,它在标题中给出了错误。
public static void main(String[] args) {
Double d1 = Double.valueOf(args[0]);
Double d2 = Double.valueOf(args[1]);
double result = d1.doubleValue() + d2.doubleValue();
System.out.println(args[0] + "+" + args[1] + "=" + result);
}
最佳答案
问题
这个 ArrayIndexOutOfBoundsException: 0
意味着索引 0
不是数组 args[]
的有效索引,这反过来意味着你的数组是空的。
在 main()
方法的这种特殊情况下,这意味着没有参数被传递到您在命令行上的程序。
可能的解决方案
如果您从命令行运行程序,请不要忘记在命令中传递 2 个参数(2,因为您正在访问
args[0]
和参数[1]
)如果您在 Eclipse 中运行您的程序,您应该在运行配置中设置命令行参数。转到
Run > Run configurations...
,然后为您的运行配置选择Arguments
选项卡,并在 program arguments 区域添加一些参数。
请注意,您应该处理没有提供足够参数的情况,在您的 main 方法的开头使用类似这样的内容:
if (args.length < 2) {
System.err.println("Not enough arguments received.");
return;
}
这会优雅地失败而不是让你的程序崩溃。
关于java.lang.ArrayIndexOutOfBoundsException : 0 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23456742/