我是Java新手。试图做一个简单的图书馆,我遇到了一个问题。线程“main”中的异常java.lang.NullPointerException - 方法
“异常在线程 ”主“ 显示java.lang.NullPointerException 在Book.showData(Book.java:22) 在Book.main(Book.java:28) Java结果:1”
我知道如何用一种方法来完成这项工作。但是当我使用两种方法 - 一种是读取,另一种是显示数据时,我得到一个错误。我认为我不会正确地理解字符串矩阵,但我不知道如何解决它。
import java.util.Scanner;
public class Book {
int bookID;
String bookName;
String bookAuthor;
int publishDate;
public String readData(){
Scanner scanner = new Scanner(System.in);
System.out.println("Book's name: ");
this.bookName = scanner.nextLine();
System.out.println("\nAuthor's name: ");
this.bookAuthor = scanner.nextLine();
System.out.println("\nYear of publish: ");
this.publishDate = scanner.nextInt();
return bookAuthor;
}
public void showData(){
String[] names = bookAuthor.split(" ");
System.out.println(bookName+" author is "+String.format("%s %s", names[0], names[names.length-1]));
}
public static void main(String args[]){
new Book().readData();
new Book().showData();
}
}
对于showData(),您正在使用Book的新实例,所以所有字段都未初始化 – lummycoder