需要找出解决以下问题的最佳方法 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/