【发布时间】:2017-01-13 11:10:28
【问题描述】:
有人能解释一下为什么这段代码会抛出IndexOutOfBoundsException吗?
public static Hull merging(Hull HullA, Hull HullB) {
Hull finalHull = new Hull();
int i=0;
int j=0;
if (HullA.list.get(i) >= HullB.list.get(j))
{
finalHull.list.add(HullA.list.get(i));
i++;
}
else
{
finalHull.list.add(HullB.list.get(j));
j++;
}
return finalHull;
}
我该如何解决?
【问题讨论】:
-
作为旁注,这个变量命名使得即使是那个小方法也难以阅读。
-
你试过用调试器找出来吗?
-
@Jens 是的,我做到了,它说 if (HullA.list.get(i) >= HullB.list.get(j)) 但我不知道如何解决这个问题即使在谷歌搜索并为列表设置值后,如果列表为空,似乎也不起作用
-
@KevinEsche 那么命名变量的好方法是什么?请建议。
-
检查列表是否为空。您得到了异常,因为如果列表为空,您将无法获取索引 0 处的元素