[英]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
数组的长度取决于传递给setawal
的sizes
参数的值。 如果传递0
,则数组将为空,并且jumedge[0]
将引发异常。
这就解释了为什么对此方法的某些调用会引发异常,而另一些则不会。
顺便说一句,如果您仅使用jumedge
数组的第一个元素,则不需要将其作为数组。 一个字符串就足够了。 我不知道getsub
方法对jumedge
数组有什么作用,但是由于您只设置了jumedge[0]
,因此可以将单个String传递给该方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.