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

Одна из ваших книг в массиве - null. –

+0

или даже сама «книга» равна нулю. – zapl

ответ

0

Три возможности. книги имеют значение null или книги [i] равно null. Если была ошибка в equals или если l является нулевой, вы увидите ее также в StackTrace.

+0

2 только. 'l' может быть нулевым, потому что он не разыменован (нет' l.something() ') – zapl

Смежные вопросы