异常:java.lang.IndexOutOfBoundsException:索引:0,大小:0 - java

我正在尝试实例化Java bean,但是它抛出

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.rangeCheck(ArrayList.java:604)
    at java.util.ArrayList.get(ArrayList.java:382)
    at com.application.jsf.BooksTable.getLastId(BooksTable.java:54)
    at com.application.jsf.BooksManager.<init>(BooksManager.java:24)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at java.lang.Class.newInstance0(Class.java:374)
    at java.lang.Class.newInstance(Class.java:327)
    at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:188)
    ... 55 more

以下是BooksManager类的相关代码:

private BooksTable booksTable;
private BookGenerator bookGenerator;

public BooksManager() {
    booksTable = new BooksTable();
    bookGenerator = new BookGenerator(booksTable.getLastId());
}

BooksTable类:

private ArrayList<BookBean> booksList;
private int BOOKS_ON_PAGE = 10;

BooksTable(){
    this.booksList = new ArrayList<BookBean>();
}

public int getLastId(){
    if(this.booksList == null){
        return -1;
    }
    return this.booksList.get(this.booksList.size()).getBookId();
}

这是怎么引起的,我该如何解决?

参考方案

尝试更改:

public int getLastId(){
if(this.booksList == null){
    return -1;
}
return this.booksList.get(this.booksList.size()).getBookId();
}

至:

public int getLastId(){
if(this.booksList == null || this.booksList.size() == 0){
    return -1;
}
return this.booksList.get(this.booksList.size()-1).getBookId();
}

希望有帮助。

java.lang.ArrayIndexOutOfBoundsException:使用并行流将元素添加到List时 - java

我正在努力优化csv文件的某些处理,因此试图加速某些Jackson的实现。所以我有:List<T> testResults=new ArrayList(); Stream<T> testStream= Streams.stream(TestIterator); testStream.parallel().forEach(p->t…

Java:线程主java.lang.NoClassDefFoundError中的异常 - java

我正在尝试使Red5 Flash Media Server在我的计算机上工作。我已经安装了它,但是在运行服务器时出现此错误:- Exception in thread "main" java.lang.NoClassDefFoundError: org/red5/server/Bootstrap Caused by: java.lang.…

不兼容的类型:java.lang.Object无法转换为T - java

这是我的代码:package datastructures; import java.util.Iterator; public class Stack<T>{ private class Node<T>{ T data; Node next; } private int size; private Node head; privat…

无法解析类型java.lang.CharSequence。从所需的.class文件间接引用它 - java

尝试从GitHub编译某些项目时,遇到以下错误The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files 如果我没有记错的话,这是来自基本JDK的课程。怎么会无法到达? 参考方案 如上面@ hajo-the…

运行程序时出现java.lang.NullPointerException - java

我有4节课。一个是抽象实体类,一个是球类,一个是主类,另一个是屏幕类。球类扩展了实体类,并具有5​​个变量。屏幕功能具有绘制方法:public void paint(Graphics g){ super.paint(g); ball.paint(g); } 当然,要使用ball.paint,需要为其创建一个对象。因此,我将球对象:Ball ball; 然后将…