在线程“AWT-EventQueue-0”中获取异常java.lang.ArrayIndexOutOfBoundsException:2

时间:2017-07-18 15:12:18

标签: java arrays exception

我在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 个答案:

答案 0 :(得分:0)

在这里,您要访问位置4和5,除非您已声明' ret [x]'作为全局数组,您无法访问它,因为它是在方法中声明的。

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

无论如何,你用2个对象声明它:

Object[] ret = new Object[2];