如何在我的自定义对象中正确实现领域列表?

时间:2016-01-14 03:28:33

标签: java android realm

所以我正在尝试将Realm List实现到我的类中,但是,我在Realm.io找到的文档并没有说明它是否需要getter / setter以及它是否应该看起来应该是什么样子喜欢。所以这是我的代码:

public class Novel extends RealmObject {

   @PrimaryKey
   private static int id;

   @Required
   private static String name;

   //Establish relationship with Novel (single) and Chapter (many)
   private RealmList<Chapter> chapters;

   public static int getId() {
       return id;
   }//end getId

   public static void setId(int id) {
       Novel.id = id;
   }//end setId

   public static String getName() {
    return name;
   }//end getName

   public static void setName(String name) {
    Novel.name = name;
   }//end setName

}//end Novel.class

为了在Realm Database中存储对象,所有变量都必须具有getter / setter。但是,由于我使用RealmList,如何正确构造我的getter / setter?

这是Android Studio给我的代码,但它看起来不正确。

public RealmList<Chapter> getChapters() {
    return chapters;
}

public void setChapters(RealmList<Chapter> chapters) {
    this.chapters = chapters;
}

getter看起来没问题,然而,setter对我如何正确使用RealmList毫无意义。

tldr :为了在自定义对象中正确实现RealmList,我的getter / setter应该是什么?

1 个答案:

答案 0 :(得分:0)

RealmList实现了所有有用的接口:

java.lang.Iterable<E>, java.util.Collection<E>, java.util.List<E>

如果您要将新的Chapter添加到Novel使用代码,类似于:

Chapter chapter = realm.copyToRealm(new Chapter());
novel.getChapters().add(chapter);

如果您想用新的章节替换所有章节:

RealmList<Chapter> chapters = new RealmList<Chapter>();
chapters.add(new Chapter());
chapters.add(new Chapter());
chapters.add(new Chapter());
chapters.add(new Chapter());

chapters = realm.copyToRealm(chapters);
novel.setChapters(chapters);