如何修复java.lang.IndexOutOfBoundsException

时间:2013-09-16 08:44:19

标签: java web-services arraylist

  

线程“main”中的异常java.lang.IndexOutOfBoundsException:Index:   0,大小:0在java.util.ArrayList.rangeCheck(ArrayList.java:604)

与arraylist.java一致

private void rangeCheck(int index) {
    if (index >= size)
        throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
}

在行

List lstpp = getResult(pp) ;
    System.out.println("=====Persegi Panjang====");
    System.out.println("luas = "+((Integer)lstpp.get(0)));

请帮忙

7 个答案:

答案 0 :(得分:6)

您想从空数组中获取元素。这就是为什么Size: 0来自异常

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

所以在填充数组之前你不能lstpp.get(0)

答案 1 :(得分:4)

lstpp为空。你无法访问空列表的第一个元素。

一般情况下,您可以查看是否size > index

在您的情况下,您需要检查lstpp是否为空。 (您可以使用!lstpp.isEmpty()

答案 2 :(得分:2)

列表中没有任何元素,因此无法访问第一个元素。

答案 3 :(得分:0)

您正在尝试访问空数组的第一个元素lstpp.get(0)。只需在数组中添加一个元素,然后在访问元素

之前检查!lstpp.isEmpty()

答案 4 :(得分:0)

发生此错误是因为列表lstpp为空(索引0处为Nothing)。因此,要么getResult()函数中存在错误,要么空列表正常,您需要处理这种情况(通过检查列表的大小或捕获异常)。

答案 5 :(得分:0)

for ( int i=0 ; i<=list.size() ; i++){
....}

通过执行此for循环,循环将以IndexOutOfBoundException原因抛出异常执行,假设列表大小为10,因此当索引i将达到10时,即当i = 10时,将抛出异常原因index=size,即i=size,并且已知Java认为索引从0,1,2 ...开始等等,Java同意的表达式为index < size。因此,此类异常的解决方案是将循环语句设为i<list.size()

for ( int i=0 ; i<list.size() ; i++){
...}

答案 6 :(得分:0)

if(index.length() < 0)用于整数

使用if(index.equals(null)作为字符串