如何修复此OutOfBoundsException
下面是我使用的代码:
ResultSet rsTagCheck = stmt.executeQuery(
"SELECT PARKING.XKRPRMT.XKRPRMT_PIDM, PARKING.XKRPRMT.XKRPRMT_STATUS, PARKING.XKRPRMT.XKRPRMT_EXPIRE_YR, PARKING.XKRPRMT.XKRPRMT_TAG FROM PARKING.XKRPRMT WHERE XKRPRMT_PIDM ='" + BannerID + "'");
while (rsTagCheck.next()){
String TagNum = rsTagCheck.getString("XKRPRMT_TAG");
ArrayList<String> myTag = new ArrayList<String>();
for (int i = 0; i < TagNum.length(); i++){
myTag.add(TagNum);
myTag.get(i + i);我有点知道为什么我会得到这个错误,但我不确定如何解决这个问题。
发布于 2010-10-07 21:21:53
问题出在myTag.get(i+i)中的i+i部件。它适用于i=0,但是一旦执行i=1,就会抛出一个异常,因为您已经向myTag添加了两个元素,但是访问的是第三个元素(myTag.get(2))。
发布于 2010-10-07 21:24:32
通过对字符串TagNum进行迭代,可以使用for循环。您只需说:myTag.add(TagNum)。
假设字符串TagNum有4个字符。您将字符串添加到列表中4次,但是当达到i=3时,您正在尝试检索位置3 + 1处的元素,但是列表中包含从0到3的元素。
另外,尝试将BannerID替换为?并相应地设置语句的参数。
发布于 2010-10-07 21:24:20
此myTag.get(i + i);导致了异常。
第一次在循环中使用i是0,在ArrayList中添加一个条目,然后调用get(0+0),这样就可以了。
在下一次迭代中,添加另一个元素(现在列表中总共有2个元素)并调用get(1+1),这会导致异常,因为您只有2元素,有效的索引是0和1。
https://stackoverflow.com/questions/3882014
复制相似问题