开发者社区 问答 正文

是什么导致java.lang.ArrayIndexOutOfBoundsException,如何防止

是什么ArrayIndexOutOfBoundsException意思,我该如何摆脱呢?

这是触发异常的代码示例:

String[] names = { "tom", "bob", "harry" }; for (int i = 0; i <= names.length; i++) { System.out.println(names[i]); }

展开
收起
保持可爱mmm 2020-01-16 14:37:19 651 分享 版权
1 条回答
写回答
取消 提交回答
  • 您的第一个停靠港应该是能够对其进行合理清晰解释的文档:

    抛出该错误指示数组已使用非法索引访问。索引为负或大于或等于数组的大小。

    因此,例如:

    int[] array = new int[5]; int boom = array[10]; // Throws the exception 至于如何避免...嗯,不要那样做。小心数组索引。

    人们有时会遇到的一个问题是认为数组是1索引的,例如

    int[] array = new int[5]; // ... populate the array here ... for (int index = 1; index <= array.length; index++) { System.out.println(array[index]); } 这将错过第一个元素(索引0),并在索引为5时引发异常。此处的有效索引为0-4(含0和4)。正确的惯用语for是:

    for (int index = 0; index < array.length; index++) (当然,这是假设您需要索引的。如果可以使用增强的for循环,请这样做。)

    问题来源于stack overflow

    2020-01-16 14:37:39
    赞同 展开评论
问答地址: