有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

谢谢你抽出时间


共 (2) 个答案

  1. # 1 楼答案

    当大小为0时,索引-1的计算结果为-1。无法访问空数组的位置0,更不用说-1了

    您需要在代码中环绕int lastIndex,以确保索引不等于或小于数组的大小

  2. # 2 楼答案

    如果library.getPatrons().size()0,则最后的索引是-1,这不是任何ArrayList的有效索引。您应该添加一个if语句来处理列表大小为0的情况