【问题标题】:Why am i having a NullPointerException? [duplicate]为什么我有 NullPointerException? [复制]
【发布时间】:2016-09-10 23:47:24
【问题描述】:

所以方法是看图书馆是否有书:

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;

}

【问题讨论】:

  • 您的数组包含空元素,因为您没有向其中添加任何内容?
  • 数组中的一本书为空。
  • 甚至books 本身为空。
  • 你在哪里定义index?
  • 你的书是null。你初始化它们了吗?除了books = new Book[x],你给他们赋值了吗?

标签: java arrays class for-loop


【解决方案1】:

三种可能性。书籍为空或书籍[i] 为空。 如果 equals 中有错误或者 l 为 null,您也会在 StackTrace 中看到它。

【讨论】:

  • 只有两个。 l 可以为 null,因为它没有被取消引用(没有 l.something())
猜你喜欢
  • 1970-01-01
  • 2020-07-18
  • 2015-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-06
  • 1970-01-01
  • 2020-05-08
相关资源
最近更新 更多