有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从类调用方法时出现java NullPointerExceptionError

从主方法调用Book类中的dlete方法会产生NullPointerException。在主类中运行delete方法时效果良好

线程“main”java中出现异常。lang.NullPointerException 在算法方面。主要的main(main.java:20)

我错过了什么

主要内容:

private static Book book;

public static void main(String[] args) {

    Book[] bookArray = {new Book(123, "Book1"), 
            new Book(321, "Book2"), 
            new Book(456, "Book3"), 
            new Book(654, "Book4"), 
            new Book(789, "Book5")};

    System.out.println(bookArray.length);
    bookArray = book.removeBook(bookArray, 456);
    System.out.println(bookArray.length);

    }

Book类方法(省略属性、getter和setter):

 public Book[] removeBook(Book[] books, int findISBN) {

    Book[] newArray = new Book[books.length - 1];
    int j = 0;

    for (int i = 0; i < books.length; i++) {
        if(books[i].getISBN() != findISBN) {
            newArray[j] = books[i];
            j++;
        }
    }
    return newArray;
}

共 (1) 个答案

  1. # 1 楼答案

    您只使用private static Book book;声明了对Book的引用。在对其调用任何方法之前,需要对其进行实例化。在main方法中包含book = new Book();

    同样值得一提的是,在同一个资源类中包含一个资源和要在该资源上执行的操作(在您的例子中Book是资源)是一个糟糕的设计

    最好创建另一个类,比如BookOperations,并将所有逻辑都写在那里,保持Book资源的整洁和简单