java之间的区别" ClassName className"和" ClassName className = new Class(property)

时间:2015-12-14 19:44:30

标签: java class object

我正在学习java,我正在做一个我正在使用两个不同类的活动:

  1. BookList (它包含一系列图书)。 (容量,数量,书籍[])

  2. 预订(它包含每本书的属性)。 (id,title,editorial ...)

  3. 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) 
    

    我知道我不能这样做,因为编译器告诉了我,但我不知道为什么编译器不喜欢这种方式。

    你能解释一下为什么这是错的吗?

    谢谢!

0 个答案:

没有答案