2016-05-14 15 views
-4

So ist die Methode, um zu sehen, ob ein Buch in der Bibliothek vorhanden ist:Warum habe ich eine NullPointerException?

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

Ausgang:

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

Was mache ich falsch hier?

So bekam ich die Antwort dank euch :) Also das Problem war, dass ich keine Bücher in der Bibliothek hinzugefügt habe! Die Methode, Bücher hinzuzufügen:

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

Ihr Array enthält null Elemente, weil Sie nichts hinzugefügt haben? –

+0

Eines Ihrer Bücher im Array ist null. –

+0

oder sogar 'Bücher' selbst ist null. – zapl

Antwort

0

Drei Möglichkeiten. Bücher sind null oder Bücher [i] ist null. Wenn es einen Fehler in equals gab oder wenn l null ist, würden Sie es auch im StackTrace sehen.

+0

nur zwei. 'l' kann null sein, weil es nicht dereferenziert ist (es gibt kein' l.etwas() ') – zapl

Verwandte Themen