-5

需要了解后续程序的流程。输出应该是什么?当我编译这个程序时,我得到了“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);
   }
}
4

2 回答 2

0

"ArrayIndexoutofBound" : 抛出以指示已使用非法索引访问数组。索引为负数或大于或等于数组的大小。

所以可能你没有传递任何命令行参数。所以args.Lenght返回 0。

所以在这里 :

Integer intObj=Integer.valueOf(args[0-1]);

索引为负数,这就是 JVM 抛出“ArrayIndexoutofBound”的原因

于 2014-10-06T13:30:39.837 回答
0

添加一些输入检查是否在 Integer.valueOf(args[args.length-1]); 之前存在某些输入 并添加一些输入信息来执行。

于 2014-10-06T13:31:05.340 回答