public class E07_ShowArgs {
public static void main(String[] args) {
System.out.println(args[0]);
System.out.println(args[1]);
System.out.println(args[2]);
}
}
和public class E07_ShowArgs2 {
public static void main(String[] args) {
if(args.length < 3) {
System.out.println("Need 3 arguments");
System.exit(1);
}
System.out.println(args[0]);
System.out.println(args[1]);
System.out.println(args[2]);
}
}这两个的区别是什么,都能编译成功,第一个运行显示“Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0”,第二个运行显示Need 3arguments求大神指教。谢了
------解决方案--------------------
那是因为你在运行时提供的参数少了.
------解决方案--------------------
参数String[] args可以理解为一个字符串数组
数组下标0代表第一个参数
数组下标1代表第二个参数
以此类推
前面的写法,没有考虑运行时刻没有参数的情况
也就是说:
java E07_ShowArgs arg1 arg2 arg3这么执行应该能正常打印出参数来
java E07_ShowArgs这么执行,由于参数是空的,所以会抛出异常
后面的写法,先判断了数组里面存放数据的个数
当然相对就安全一些了