繁体   English   中英

为什么会收到“ ArrayIndexOutOfBoundsException:0”? (字符串数组)

[英]Why am I getting “ArrayIndexOutOfBoundsException: 0”? (array of string)

我的代码中有一个像这样的过程:

public void setawal(ArrayList<String> edge, String[] nodeforsub, int sizes){
    size=sizes;
    jumedge=new String[size];
    totalsubedge=new String[size];
    hasiljumedge=new String[size];
    hasilsubedge=new String[size];
    for(int j=0;j<edge.size();j++){
        if(jumedge[0]==null){
            jumedge[0]=edge.get(j);
        }else{
            jumedge[0]=jumedge[0]+":"+edge.get(j);
        }
    }
    urutan=new int[edge.size()];
    for(int i=0;i<edge.size();i++){
        urutan[i]=i;
    }
    node=nodeforsub;
    getsub(size, node, jumedge, totalsubedge, hasilsubedge, urutan);
}

在我的项目中,两个类将访问此过程,当第一个类访问此过程时,它将正常工作,但是当第二个类访问此过程时,则显示此错误消息:

java.lang.ArrayIndexOutOfBoundsException:0

我该如何解决?

我知道问题是当第二堂课尝试访问jumedge[0] ,但是我很困惑为什么对于第一堂课它可以正确地访问它?

jumedge数组的长度取决于传递给setawalsizes参数的值。 如果传递0 ,则数组将为空,并且jumedge[0]将引发异常。

这就解释了为什么对此方法的某些调用会引发异常,而另一些则不会。

顺便说一句,如果您仅使用jumedge数组的第一个元素,则不需要将其作为数组。 一个字符串就足够了。 我不知道getsub方法对jumedge数组有什么作用,但是由于您只设置了jumedge[0] ,因此可以将单个String传递给该方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM