java IndexOutOfBoundsException:索引1超出长度0的界限
我正在做一个课堂作业项目,我们正在修改一个图书馆系统,允许向图书馆系统添加用户,addbooks已经为我完成了,我已经用它作为模板创建了AddCustomers。我已经完成了,但每当我试图创建它,我得到以下错误
IndexOutOfBoundsException: Index -1 out of bounds for length 0
这里是代码出错的地方
public void execute(Library library, LocalDate currentDate) throws LibraryException {
int lastIndex = library.getPatrons().size() -1;
int maxId = library.getPatrons().get(lastIndex).getId();
Patron patron = new Patron(++maxId, name, phone);
library.addPatron(patron);
System.out.println("Patron #" + patron.getId() + " added.");
add custor接受两个值name和phone
谢谢你抽出时间
# 1 楼答案
当大小为0时,索引-1的计算结果为-1。无法访问空数组的位置0,更不用说-1了
您需要在代码中环绕int lastIndex,以确保索引不等于或小于数组的大小
# 2 楼答案
如果
library.getPatrons().size()
是0
,则最后的索引是-1
,这不是任何ArrayList的有效索引。您应该添加一个if语句来处理列表大小为0的情况