Jdbc 在JSF中得到一个我无法解释或找到的NullPointerException

Jdbc 在JSF中得到一个我无法解释或找到的NullPointerException,jdbc,nullpointerexception,jsf-2.2,Jdbc,Nullpointerexception,Jsf 2.2,我试图在JSF中创建一个购物车,然后创建一个显示数据库中存储的所有订单的按钮。我已经完成了所有的编码,但是当我尝试将一本书添加到ShoppingCart类时,我得到了一个空指针异常,我一辈子都不知道为什么。如果您有任何帮助,我们将不胜感激 调用c.addBook(b)时出错 结果我需要补充一下 if(books == null) { books = new ArrayList<>(); } if(books==null) { books=新数组列表(

我试图在JSF中创建一个购物车,然后创建一个显示数据库中存储的所有订单的按钮。我已经完成了所有的编码,但是当我尝试将一本书添加到ShoppingCart类时,我得到了一个空指针异常,我一辈子都不知道为什么。如果您有任何帮助,我们将不胜感激

调用c.addBook(b)时出错


结果我需要补充一下

if(books == null)
    {
        books = new ArrayList<>();
    }
if(books==null)
{
books=新数组列表();
}

在addBook方法之前。我不知道为什么,因为我早些时候实例化了,但我不会讨厌它。去掉了我的空指针

你说“因为我早些时候实例化了”,具体在哪里?我在bean顶部的init方法中实例化了。你用
@PostConstruct
注释标记了它吗?是的,我添加了注释。这就是为什么我对它为什么为空感到困惑。
public void addBook(Book book) {
    boolean inList = false;
    System.out.print(book.getAuthor());
    System.out.print(book.getTitle());
    System.out.print(book.getPrice());
    System.out.print("pre for loop");
    for (Book temp : books) {
        System.out.print("made a book");
        if (book.title.equals(temp.title)) {
            inList = true;
            switch (temp.title) {
                case "Intro to Java Serverlets":
                    serverlet++;
                    break;
                case "Intro to JSP":
                    jsp++;
                    break;
                case "Intro to JSF":
                    jsf++;
                    break;
                default:
                    ee++;
                    break;
            }

        }
    }
if (!(inList)) {
        if (book.title.equals("Intro to Java Serverlets")) {
            serverlet++;
        } else if (book.title.equals("Intro to JSP")) {
            jsp++;
        } else if (book.title.equals("Intro to JSF")) {
            jsf++;
        } else {
            ee++;
        }
        System.out.print("pre add a book");
        books.add(book);
    }
}
if(books == null)
    {
        books = new ArrayList<>();
    }