【发布时间】:2025-12-18 18:00:01
【问题描述】:
这似乎是微不足道的,但也许我对Vectors的理解不是它应该的样子。我在这段代码中得到 [java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 1] 。错误出现在第 3 行。既然看是基于 Vector 的大小,那么数组怎么会越界呢?
方法“getChangeSets()”返回一个列表。 List 最初是作为 Vector 创建的。
2 for (int i = 0; i < getChangeSets().size(); i++) {
3 ChangeSet currentChangeSet = getChangeSets().get(i);
4 if (currentChangeSet.getSequentialNumber() == sequentialNumber) {
5 return currentChangeSet;
6 }
7 }
【问题讨论】:
-
getChangeSets() 是否总是返回相同的列表,还是每次调用该方法时都会创建它?因此,请在迭代之前将列表分配给变量。
-
对于初学者,您不应该使用
Vector,原因在其文档中进行了描述。一般用ArrayList代替。 -
完全同意 Vector 是一个不合适的选择 - 这是非常古老的遗留代码,我希望尽可能少地进行更改(Vector 声明隐藏在许多层中)
标签: java vector indexoutofboundsexception