Java递归方法(线程“ main”中的异常java.lang.ArrayIndexOutOfBoundsException:索引4超出长度4的范围)

时间:2020-10-12 02:40:44

标签: java recursion methods

我试图获取一个对象数组,并使用递归方法打印出相反的图形,但出现上述错误。有人可以帮我吗?

    public static void main(String[] args) {
        int v = 1;
        int x = 2;
        String y = "dog";
        String z = "cat";
        Object[] a = {v, x, y, z};
        printReverse(a, a.length);
    }
    public static void printReverse(Object[] arr, int i) {
        if (i > 0) {
            System.out.println(arr[i]);
            printReverse(arr, i - 1);
        }
        else {
            return;
        }
    }
}

2 个答案:

答案 0 :(得分:1)

您对printReverse的初始呼叫需要传递a.length -1。因为数组是0索引的,所以您在初次调用之前就越界越好

答案 1 :(得分:0)

该错误消息表示您正在访问数组元素4,但只有索引从0到3的元素。Java中的数组索引从0开始。