【问题标题】:How do I properly implement a Realm List into my custom object?如何在我的自定义对象中正确实现领域列表?
【发布时间】:2016-01-14 03:28:33
【问题描述】:

所以我试图在我的类中实现一个领域列表,但是,我可以在 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 数据库中存储对象,所有变量都必须具有 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:我的 getter/setter 应该是什么才能在我的自定义对象中正确实现 RealmList

【问题讨论】:

    标签: java android realm


    【解决方案1】:

    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);
    

    【讨论】:

    • 我理解这些东西,但这并不能回答我的问题。我不确定我的自定义对象文件(在本例中为 Novel.java)中的 RealmList 的 getter/setter 必须是什么。
    • 您的 setter/getter 在您的问题中没有问题。 RealObject(和 RealmList)只是代理对象。这意味着您只能使用它访问/修改字段,并且应该以这种方式声明它们。
    • 好的,这就是我需要验证的。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    相关资源
    最近更新 更多