需要了解以下程序的流程。 输出应该是什么? 当我编译这个程序时,我得到“ArrayIndexoutofBound”错误。
public class test {
public static void main(String args[]) {
Integer intObj=Integer.valueOf(args[args.length-1]);
int i = intObj.intValue();
if(args.length > 1)
System.out.println(i);
if(args.length > 0)
System.out.println(i - 1);
else
System.out.println(i - 2);
}
}
答案 0 :(得分:0)
“ArrayIndexoutofBound”:抛出此异常表示已使用非法索引访问数组。索引为负数或大于或等于数组的大小。
所以可能你没有传递任何命令行参数。所以args.Lenght
返回0。
所以这里:
Integer intObj=Integer.valueOf(args[0-1]);
索引是负面的,这就是为什么JVM抛出“ArrayIndexoutofBound”
答案 1 :(得分:0)
添加一些输入检查是否在Integer.valueOf之前存在某些输入(args [args.length-1]);并将一些输入信息添加到执行中。