java - 此给定场景中的 IndexOutofBoundsException 解决方案

标签 java jakarta-ee

需要找出解决以下问题的最佳方法 java.lang.IndexOutofBoundsException: Index: 1, Size: 0

从代码中可以看出,只要条件满足

,就会发生此异常
if(tempBean.getCustomerState.equalsIgnoreCase("MD")    

为 false,外部 for 循环继续执行。这使得代码看起来像:

finalBeanOne.add(1, tempBeanOne.get(1));

但由于 FinalBeanOne 列表从未在索引 0 处有元素(因为第一次迭代时 if 条件为 false),因此会抛出 IndexOutofBoundsException。解决这种情况的最佳方法是什么?

ArrayList<BeanOne> finalBeanOne = new ArrayList<BeanOne>();

ArrayList<BeanOne> tempBeanOne = (cast) DAO.getBeanOneList();

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

      if(tempBeanOne.getCustomerState.equalsIgnoreCase("MD") {

        finalBeanOne.add(i, tempBeanOne.get(i));
      }


  }

最佳答案

您应该使用equals()比较方法String对象

您可以简单地使用add(Object)或者如果您需要索引作为键,则选择 Map<integer, Object>

关于java - 此给定场景中的 IndexOutofBoundsException 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9059455/

相关文章:

java - Wildfly activemq 集成 - 消息子系统

java - 没有附件的 SOAPMessage writeTo

java - 如何防止 jar 在构建过程中多次编译

java - Java中可以不使用abstract关键字来定义抽象方法吗?

java - 通过 servlet 传送解压后的文件,无需先在服务器上解压

java - 如果 url 模式匹配多个 servlet 怎么办?

javascript - 使用 node.js 使用来自 azure eventhub 的八位字节流数据

java - 如何在java中对ArrayList的ArrayList进行排序?

java - 如何向服务器正确验证 AngularJS 客户端

java - 类型上的 CDI 会抛出 NPE