java - arraylist 中的 NullPointerException

标签 java arraylist nullpointerexception

我的功课遇到了一些问题,希望能在这里得到一些帮助!显然在第 17 行有一个 nullpointerexception 错误。

import java.util.*;
import java.text.*;
public class Librarian {
    private ArrayList<Book> bookList = new ArrayList<Book>();

    public Librarian() {
        bookList = new ArrayList<Book>();
    }
    public ArrayList<Book> findBooksWrittenBy(ArrayList<Book> bookList, String author) {
        ArrayList<Book> booksByAuthor = new ArrayList<Book>();
        for(int i = 0; i < bookList.size(); i++) {
            Book book = bookList.get(i);
            String author1 = book.getAuthor();
            if(author1.equalsIgnoreCase(author)) {
                booksByAuthor.add(book);
            }
            if(booksByAuthor.size() != 0) {
                booksByAuthor = booksByAuthor;
            }else {
                booksByAuthor = null;
            }
        }
        return booksByAuthor;
    }

最佳答案

将对作者的检查放在 for 循环之外。 然后,检查大小并立即返回,给自己分配一个对象是多余的。

如下:

  public ArrayList<Book> findBooksWrittenBy(ArrayList<Book> bookList, String author) {
    ArrayList<Book> booksByAuthor = new ArrayList<Book>();
    for(int i = 0; i < bookList.size(); i++) {
        Book book = bookList.get(i);
        String author1 = book.getAuthor();
        if(author1.equalsIgnoreCase(author)) {
            booksByAuthor.add(book);
        }
    }
    if(booksByAuthor.size() > 0) {
        return booksByAuthor;
    }else {
       return null;
    }
}

关于java - arraylist 中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13144727/

相关文章:

java - 在 Eclipse 中编辑 CSV 文件

java - 获取 map 键的数组

java - 空指针和私有(private)成员,带 swing 的基本 Java GUI

java - 无法解释 NullPointerException

java - 如何将可变参数作为参数传递给方法?

java - 打印解决方案

java - struts2中并行迭代两个ArrayList

java - 抛出异常问题

Java - 按步骤对数组进行切片

java - JPE : Attempt to invoke virtual method 'android.content.res.Resources' on a null object reference