Java 从类调用方法时出现NullPointerExceptionError
从主方法调用Book类中的dlete方法会产生NullPointerException。在主类中运行delete方法时工作正常 线程“main”java.lang.NullPointerException中出现异常 at algorithms/algorithms.Main.Main(Main.java:20) 我错过了什么 主要内容: Book类方法(省略属性、getter和setter):Java 从类调用方法时出现NullPointerExceptionError,java,class,nullpointerexception,Java,Class,Nullpointerexception,从主方法调用Book类中的dlete方法会产生NullPointerException。在主类中运行delete方法时工作正常 线程“main”java.lang.NullPointerException中出现异常 at algorithms/algorithms.Main.Main(Main.java:20) 我错过了什么 主要内容: Book类方法(省略属性、getter和setter): public Book[]removeBook(Book[]books,int findISBN){
public Book[]removeBook(Book[]books,int findISBN){
Book[]newArray=新书[books.length-1];
int j=0;
for(int i=0;i
您已将书籍
声明为静态,但尚未对其进行初始化
private static Book book;
当你这么做的时候
bookArray = book.removeBook(bookArray, 456);
book
为null
看来你要么
新书()分配给您的静态书籍
Book
类中使方法static
,并在main
方法中调用Book.removeBook(…)
您仅使用
私有静态Book声明了对Book
的引用代码>。在对其调用任何方法之前,需要对其进行实例化。包括book=新书()代码>内部main
方法
在同一个资源类中包含一个资源和要对该资源执行的操作(在您的案例中,Book
就是资源),这是一个糟糕的设计,这也是毫无价值的
最好创建另一个类,如BookOperations
,并将所有逻辑写入其中,使Book
资源保持整洁和简单。Book未初始化。初始化它或将方法设为静态。主题外,但如果给定ISBN与arrayremoveBook中的任何书籍不匹配,则您的removeBook
方法将引发异常。removeBook应该是直接在book上调用的静态方法
private static Book book;
bookArray = book.removeBook(bookArray, 456);