我正在学习java,我正在做一个我正在使用两个不同类的活动:
BookList (它包含一系列图书)。 (容量,数量,书籍[])
预订(它包含每本书的属性)。 (id,title,editorial ...)
在 BookList 类中,我有一个名为 findByEdithorial()的方法:
public BookList findByEdithorial(String edithorial) {
//BookList bookList2 = null;
BookList bookList2 = new BookList(numElements);
for (int i = 0; i < numElements; i++) {
int add;
if(edithorial.equals(books[i].getEdithorial()))
{
bookList2.add(books[i]);
}
}
return bookList2;
}
我在这里做的是该方法接收编辑,然后我比较它是否存在(在我的实际书籍阵列&#34; 书籍&#34;),如果它存在,我将图书对象添加到 bookList2 。
我的问题是,当我使用时:
BookList bookList2 = new BookList(numElements);
程序运行没有任何问题,但是当我尝试:
BookList bookList2 = null;
它抛出了我:
Exception in thread "main" java.lang.NullPointerException
at shop.BookList.findByEdithorial(BookList.java:92)
我知道我不能这样做,因为编译器告诉了我,但我不知道为什么编译器不喜欢这种方式。
你能解释一下为什么这是错的吗?
谢谢!