有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数组在线程“awteventque0”java中出现异常。lang.ArrayIndexOutofBounds异常:2

我在一个Java应用程序中工作,我不断地得到标题中的错误,我不知道为什么

这里是我的代码:

public static Object[] DataProcessinglcld(String in, String par){
    Object[] ret = new Object[2];
    if (in.contains("string" + par)){
        ret[0] = par;
        ret[1] = 0;
        return ret;
    }
    else{
        ret[0] = in;
        ret[1] = 1;
        return ret;
    }
}

    Object[] xlib = DataProcessinglcld(in[bit], "xlib.v");  // error line
    //System.arraycopy(DataProcessinglcld(in[bit], "xlib.v"), 0, xlib, 0, 2);
    bit++;
    ret[4] = xlib[0];
    ret[5] = xlib[1];
    if ( (int) xlib[1] == 1) {

        return FillWithZ(6,ret);
    }

我知道提到的错误与试图访问数组的错误索引有关,但据我所知,我试图将长度为2的数组分配给另一个相同大小的数组。 请注意,如果我只是使用问题行下方注释中的函数将结果从DataProcessinglcld(以[bit],“xlib.v”)复制到一个数组,则会得到相同的错误


共 (1) 个答案

  1. # 1 楼答案

    在这里,您希望访问位置4和5,除非您已将“ret[x]”声明为全局数组,否则您将无法访问它,因为它是在一个方法中声明的

    ret[4] = xlib[0];
    ret[5] = xlib[1];
    

    无论如何,您可以用两个对象声明它:

    Object[] ret = new Object[2];