You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

java.lang.ArrayIndexOutOfBoundsException:为何这段Java代码触发数组越界?

为啥你的Java代码会抛出ArrayIndexOutOfBoundsException?

嘿,这个问题我太熟了!咱们来一步步拆解你遇到的问题:

  • 先搞懂args数组的作用
    main方法里的args是用来接收命令行启动参数的字符串数组。当你在控制台直接运行java Show时,没有传入任何额外参数,这时候args数组的长度是0——也就是说,这个数组里一个元素都没有。

  • 直接访问args[0]就踩坑了
    数组索引从0开始,但如果数组长度为0,根本不存在args[0]这个位置,JVM自然会抛出java.lang.ArrayIndexOutOfBoundsException,提示你访问了一个不存在的数组索引。

怎么解决?

有两个简单的处理方式:

  1. 运行时传入参数
    在控制台执行命令时带上参数,比如:

    java Show Mounika
    

    这时候args[0]会被赋值为"Mounika",代码就能正常输出name is Mounika了。

  2. 在代码里增加参数检查
    为了避免用户忘记传参数导致报错,最好先判断数组长度再访问元素:

    public class Show { 
        public static void main (String args[]){ 
            if (args.length > 0) {
                String str = args[0];
                System.out.println("name is " + str);
            } else {
                System.out.println("请传入一个名字参数哦!");
            }
        } 
    }
    

内容的提问来源于stack exchange,提问作者Mounika Angadi

火山引擎 最新活动