2015-04-05 95 views
0

所以,基本上我有了显示java.lang.NullPointerException:空

private int numberOfBooks = 0; 

    public int getNumberOfBooks() 
{ 
    return numberOfBooks; 
} 

当然,当你在NUMBEROFBOOKS增加1我的其他类学生有库添加一本新书图书馆系统以下代码:

private LibrarySystem libraryBooks; 

    public void searchByISBN() 
{ 
    int i = 0; 
    boolean found = false; 
    while(i<libraryBooks.getNumberOfBooks()) //THE PROBLEM IS HERE 
    { 
     if(books[i].getISBN().equals(in.next())) 
     { 
      found = true; 
      break; 
     } 
     i++; 
    } 
    if(found) 
    { 
     System.out.println("\n Book info: \n ISBN: " + books[i].getISBN() + 
          "\n Title: " + books[i].getTitle() + 
          "\n Author: " + books[i].getAuthor() + 
          "\n Subject: " + books[i].getSubject()); 
         } 
     else System.out.println("There is no book with such ISBN"); 
} 

我得到一个Java.lang.NullPointerException,我不知道为什么。我怎样才能解决这个问题?

+0

'libraryBooks'显示为空值。修复它 - 在使用之前初始化变量。如果你在解决NullPointerException(NPE)方面做了一些研究,你就会知道我们需要的最重要的信息是异常的相关堆栈跟踪以及引起它的线的一些标识,这是堆栈跟踪会告诉你。 – 2015-04-05 23:40:24

+0

**你应该仔细阅读你的异常的堆栈跟踪,找到有故障的代码行,引发异常的代码行,然后仔细检查该行,找出哪个变量为空,然后追溯到代码中明白为什么。你会一次又一次遇到这些,相信我。 – 2015-04-05 23:41:26

回答

0

在你的函数,把下面的:

libraryBooks = new LibrarySystem(); 

因为你还没有初始化它,libraryBooks是空

相关问题