尝试在java中使用方法时发生异常
嗨,伙计们,经过一段长时间的休息后,我正试图回到编码上来,我遇到了一些问题。 我正在构建一个程序,其中有一个用户上传的图书库(不是真的上传任何东西),我正在运行一个尝试在java中使用方法时发生异常,java,Java,嗨,伙计们,经过一段长时间的休息后,我正试图回到编码上来,我遇到了一些问题。 我正在构建一个程序,其中有一个用户上传的图书库(不是真的上传任何东西),我正在运行一个 Exception in thread "main" java.lang.NullPointerException at Library.beans.User.uploadBook(User.java:107) at Library.LibraryApplication.main(LibraryApplication
Exception in thread "main" java.lang.NullPointerException
at Library.beans.User.uploadBook(User.java:107)
at Library.LibraryApplication.main(LibraryApplication.java:22)
当我试图通过用户添加一本新书时,我使用SpringBTW
编码片段
User bean
@Entity
@Table(name = "Users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(nullable = false, unique = true)
private String email;
@Column(nullable = false)
private String password;
@Column(nullable = false, unique = true)
private String userName;
// ** Books added to a user private library **
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private List<Book> userLibrary;
// ** Books uploaded by user **
@OneToMany(cascade = CascadeType.ALL)
private List<Book> userBooks;
public User(String email, String password, String name) {
super();
this.email = email;
this.password = password;
this.userName = name;
}
public void uploadBook(Book book) {
this.userBooks.add(book);
}
额外注释
如果我通过(book new book)在用户之外创建了一本书,并以一种方式将作者添加到ctr中,该书将声明其作者是我在创建时输入的“用户”,但同一“用户”不会将其列在其上载的图书列表下。
我在这里遗漏了什么?您必须初始化
私有列表用户手册您的用户bean中的code>
您的列表对象为空,这会在您将和对象添加到此列表时导致NullPointerException
这将解决您的问题:
private List<Book> userBooks = new ArrayList();
private List userbook=new ArrayList();
Well.。这很有效……但是为什么我需要在bean中初始化呢?我检查了一个我做的旧项目,它在bean中也有一个列表,并且在没有初始化的情况下工作得很好。
user.uploadBook(new Book("book1", "a", "b", GenreType.Action));
private List<Book> userBooks = new ArrayList();