【问题标题】:Error while trying to add an element to a listModel尝试将元素添加到 listModel 时出错
【发布时间】:2016-03-06 02:43:51
【问题描述】:

由于某种原因,当我尝试将元素添加到 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

        }

}

我不明白出了什么问题。我尝试进行研究,它提出了一些超出数组范围的内容,但我不知道数组与此有什么关系。

【问题讨论】:

  • 检查清单booksToAdd

标签: java awt jlist defaultlistmodel


【解决方案1】:

由于getSize 是元素的数量,i 是索引,如果您允许i 一直上升到您要寻找的更多元素的大小,那么您的数组/列表(索引从零开始,计数从 1 开始)

你应该有

for (int i = 0; i &lt; shoppingCart.getModel().getSize();i++)

而不是i &lt;= shoppingCart.getModel().getSize()

【讨论】:

  • 哇...谢谢。我不敢相信我犯了那个错误。我真的很困惑为什么这不起作用。认为这是出于所有错误的原因。
  • 别担心,我相信每个人都会时不时地这样做!
【解决方案2】:

很可能在对 shoppingCart.getModel().getSize() 的初始检查中抛出错误。

您可以使用以下内容作为您对列表项是否存在的初始检查:

if(CollectionUtils.isNotEmpty(shoppingCart.getModel())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    相关资源
    最近更新 更多