mkj*_*kjh 1 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;
}
Run Code Online (Sandbox Code Playgroud)
将您的支票放在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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |