2016-05-14 66 views
-4

因此該方法是看如果一本書在圖書館存在:爲什麼我有NullPointerException?

public boolean exists(Book l) {      
    for (int i = 0; i < index; i++) { 
     if (books[i].equals(l)) { 
      return true; 
     } 
    } 
    return false; 
} 

輸出:

Exception in thread "main" java.lang.NullPointerException 
at Library.exists(Library.java:13) 

我到底錯在這裏做什麼?

所以我得到了答案感謝你們:)所以問題是,我沒有添加圖書館內的書籍!添加圖書的方法:

public void addBook(Book l) { 
    if (l == null) { 
     System.out.println("Book is unini..!"); 
     return; 
    } 

    if (exists(l)) { 
     System.out.println("Book exists!"); 
     return; 
    } 

    if (books.length == index) { 
     Book[] temp = new Book[books.length + 3]; 
     for(int i=0;i<books.length;i++){ 
      temp[i]=books[i]; 
     } 
     books=temp; 
    } 
    books[index++] = l; 

} 
+0

您的數組包含空元素,因爲您沒有添加任何內容? –

+0

數組中的一本書是空的。 –

+0

甚至「書籍」本身都是空的。 – zapl

回答

0

三種可能性。書籍爲空或書籍[i]爲空。 如果在equals中有錯誤,或者如果l爲null,那麼您也會在StackTrace中看到它。

+0

只有兩個。 'l'可以爲null,因爲它沒有被解除引用(沒有'l.something()') – zapl

相關問題