线程“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)));
请帮忙
答案 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)
作为字符串