由于某种原因,当我尝试将元素添加到ListModel
时,我不断收到此错误:
线程"AWT-EventQueue-0"中的异常 java.lang.ArrayIndexOutOfBoundsException: 1>= 1
这是它发生的代码块:
if (shoppingCart.getModel().getSize() > 0)
{
for (int i = 0; i <= shoppingCart.getModel().getSize();i++)
{
Object a = shoppingCart.getModel().getElementAt(i);
System.out.println(a.toString()); // this is to test if it gets the right value
// it does.
booksToAdd.addElement(a.toString()); //but here it cannot add it
}
}
我不明白出了什么问题。 我试图做研究,它提出了一些类似于数组越界的东西,但我不知道数组与此有什么关系。
由于getSize
是元素的数量,i
是索引,如果你允许i
一直到你将要寻找的大小,那么你在数组/列表中还有一个元素(索引从零开始,计数从1开始)
相反,您应该拥有
for (int i = 0; i < shoppingCart.getModel().getSize();i++)
而不是i <= shoppingCart.getModel().getSize()
它可能会在 shoppingCart.getModel().getSize() 的初始检查中抛出错误。
可以使用以下内容作为列表项是否存在的初始检查:
if(CollectionUtils.isNotEmpty(shoppingCart.getModel())