【问题标题】:how to fix java.lang.IndexOutOfBoundsException如何修复 java.lang.IndexOutOfBoundsException
【发布时间】:2013-09-20 08:29:07
【问题描述】:

线程“主”java.lang.IndexOutOfBoundsException 中的异常:索引: 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)));

请帮忙

【问题讨论】:

  • index > 尺寸应该做的
  • @ay89 是你批评的 java 库代码。
  • 尝试在getResult方法中查找问题。
  • 您需要的所有信息都在这个问题中。答案并不能提供任何突破,也许您可​​以阅读该问题一次,并且应该得到它。
  • @ay89 你的回答index>size would do 仍然是垃圾、虚假和误导,无论你指的是谁。 另外,如果你能正确阅读 zou 引用的内容,你会注意到关系运算符是 反之... 表现出一些尊重,承认自己的错误.这在专业环境中至关重要。很抱歉大喊大叫,但是传播了如此明显的不良信息,并试图如此激烈地捍卫它,这让我失去了这种动物。

标签: java web-services arraylist


【解决方案1】:

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

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

所以你不能lstpp.get(0)直到你填满数组。

【讨论】:

    【解决方案2】:

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

    一般情况下,你可以检查size > index

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

    【讨论】:

      【解决方案3】:
      for ( int i=0 ; i<=list.size() ; i++){
      ....}
      

      通过执行这个 for 循环,循环将抛出异常 IndexOutOfBoundException 原因,假设列表大小为 10 ,所以当索引 i 达到 10 时,即当 i=10 时,将抛出异常原因 @987654323 @,即i=size,众所周知Java 认为索引从0、1、2...等开始,Java 同意的表达式是index &lt; size。所以这种异常的解决方法是在循环中声明i&lt;list.size()

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          您正在尝试访问空数组的第一个元素 lstpp.get(0)。只需在数组中添加一个元素并在访问元素之前检查!lstpp.isEmpty()

          【讨论】:

            【解决方案6】:

            发生此错误是因为您的列表 lstpp 为空(索引 0 处没有任何内容)。所以要么你的getResult()函数有bug,要么空列表是正常的,你需要处理这种情况(通过之前检查列表的大小,或者捕获异常)。

            【讨论】:

            • 谢谢先生,我发现问题出在 getResult() 函数中,忘记将“返回 null”更改为“返回(变量)”。 我是java初学者 xoxo
            【解决方案7】:

            使用if(index.length() &lt; 0) 表示整数

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2020-11-29
              • 2020-02-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-01-20
              相关资源
              最近更新 更多