gpt4 book ai didi

java - 类关系,NullPointerException 错误

转载 作者:行者123 更新时间:2023-11-29 06:58:59 25 4
gpt4 key购买 nike

我有两类作者和书籍:

public class Authors extends RealmObject {
@PrimaryKey
private String url_base;
private RealmList<Books> books;
... getters & setters...
public RealmList<Books> getBooks() {
return books;
}
public void setBooks(RealmList<Books> books) {
this.books = books;
}
}

public class Books extends RealmObject {
@PrimaryKey
private String url_base;
private Authors author;
... getters & setters...
public Authors getAuthor() {
return author;
}
public void setAuthor(Authors author) {
this.author = author;
}
}

执行插入:

Authors author = new Authors();
author.setUrl_base("url_base")

Books book = new Books();
book.setUrl_base("lala");
book.setAuthor(author);

author.getBooks().add(book); // error comes here

realm.beginTransaction();
realm.copyToRealmOrUpdate(author);
realm.commitTransaction();

并且程序给出了 java.lang.NullPointerException。

错误行:author.getBooks().Add (book);

有什么问题吗?我请求你的帮助。

最佳答案

你还没有为你的作者对象设置 books 成员(因为 books 没有初始化它是 null)所以 getBooks() 将返回一个 null

确保 books 在使用前已初始化:

public class Authors extends RealmObject {
@PrimaryKey
private String url_base;
private RealmList<Books> books = new RealmList<Books>(); // An empty unmanaged books list.
... getters & setters...

或者使用 setter 方法(尽管在这种情况下在构建时初始化它会更正确):

Authors author = new Authors();
author.setUrl_base("url_base")
author.setBooks(new RealmList<Book>());

更新:

正如@AndreyAtapin 在上面的解决方案中正确指出的那样,该列表将不受管理。如果您想要托管列表,请传递在 RealmList 中指定的必需参数 api但是无论您选择什么,都必须在开始操作之前对书籍列表进行初始化

关于java - 类关系,NullPointerException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29384840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com