2016-05-14 10 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

何も追加していないため、配列にnull要素が含まれていますか? –

+0

配列内の書籍の1つがnullです。 –

+0

または 'books'自体もnullです。 – zapl

答えて

0

3つの可能性があります。本がヌルか本[i]がヌルです。 equalsにエラーがあった場合、またはlがnullの場合はStackTraceでもそれを確認できます。

+0

2つだけです。 'l'は参照解除されていないのでnullになります(' l.something() 'はありません) – zapl

関連する問題