我需要使用Realm的list<Object>。我尝试了RealmList<RealmObject>,但是它不起作用,因为RealmObject是抽象的。

最佳答案

来自Realm的基督徒。您只能在Realm中保存扩展RealmObject的对象。这是因为Realm不是无模式数据库。我们确实需要一个模式,并且该模式由扩展RealmObject的对象定义。我们使用RealmList是因为它抽象化了与基础核心数据库的通信,但是它实现了List接口(interface)。

这意味着

public class Foo extends RealmObject {
  private List<Object> objects;  // not legal
  private RealmList<Object> objects;  // not legal
  private RealmList<RealmObject> objects; // not legal
}

public class Foo extends RealmObject {
  private RealmList<Foo> objects; // legal
}

List<Foo> reference = foo.getObjects(); // Legal

09-15 20:36