gpt4 book ai didi

java - 如何在 Android Realm 中保存对象列表?

转载 作者:行者123 更新时间:2023-12-01 22:34:46 25 4
gpt4 key购买 nike

我想保存一个具有列表的对象,问题是当我添加列表时它显示错误

这是对象:

public class SaveRealm extends RealmObject {

private String id;
private RealmList<AnswersBean> answers;

public SaveRealm(){}
public SaveRealm(String id, RealmList<AnswersBean> answers) {
this.id = id;
this.answers = answers;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}


public RealmList<AnswersBean> getAnswers() {
return answers;
}

public void setAnswers(RealmList<AnswersBean> answers) {
this.answers = answers;
}
}

这是 AnswersBean:

    public class AnswersBean extends RealmObject {
private String text;
private boolean belongsToCurrentUser;

public String getText() {
return text;
}

public void setText(String text) {
this.text = text;
}

public boolean isBelongsToCurrentUser() {
return belongsToCurrentUser;
}

public void setBelongsToCurrentUser(boolean belongsToCurrentUser) {
this.belongsToCurrentUser = belongsToCurrentUser;
}
public AnswersBean(){}
public AnswersBean(String text, boolean belongsToCurrentUser) {
this.text = text;
this.belongsToCurrentUser = belongsToCurrentUser;
}

}

在我保存 Realm 的 Activity 中,我执行以下操作:

final AnswersBean receptor = new AnswersBean("test", false);
RealmList<AnswersBean> answersList = new RealmList<>();
answersList.add(receptor);
SaveRealm saveRealm = myRealm.createObject(SaveRealm.class);
saveRealm.setId("s");
saveRealm.setAnswers(answersList);
myRealm.commitTransaction();

但我收到以下错误

java.lang.NullPointerException: Attempt to invoke interface method 'long io.realm.internal.Row.getIndex()' on a null object reference

我在saveRealm.setAnswers(answersList)行上收到此错误

如何保存列表?

最佳答案

在您的 SaveRealm 类中,answers 字段是一个列表。当您使用 myRealm.createObject 创建对象时(我只能假设是 ChatRealm.class 的拼写错误),该成员就会被创建。您无法将该成员重新分配到另一个列表,而是修改现有列表。

例如,您的 SaveRealm.setAnwers 方法可能如下所示:-

public void setAnswers(RealmList<AnswersBean> answers) {
this.answers.clear();
this.answers.addAll(answers);
}

关于java - 如何在 Android Realm 中保存对象列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58532797/

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