如何将RealmResults <Object>转换为List <Object>

Pha*_*inh 14 android realm

我有我从收到RealmResults Realm

RealmResults<StepEntry> stepEntryResults = realm.where(StepEntry.class).findAll();
Run Code Online (Sandbox Code Playgroud)

现在我想转换RealmResults<StepEntry>ArrayList<StepEntry>

我试过了

 ArrayList<StepEntry> stepEntryArray = new ArrayList<StepEntry>(stepEntryResults));
Run Code Online (Sandbox Code Playgroud)

但是我的物品ArrayList不是我的StepEntry对象,它是StepEntryRealmProxy 在此输入图像描述

我怎么转换它?任何帮助或建议将非常感谢.

Epi*_*rce 36

要急切地从Realm中读取每个元素(并因此使列表中的所有元素都变得不受管理,你可以这样做):

 List<StepEntry> arrayListOfUnmanagedObjects = realm.copyFromRealm(realmResults);
Run Code Online (Sandbox Code Playgroud)

但是你通常没有理由这样做,除非你想用GSON序列化对象(特别是因为它用反射而不是用getter读取字段数据).


通常__CODE__由于任何其他原因在其他任何地方进行混合,这表明对Realm的设计存在根本性的误解.毕竟,这是一个零拷贝数据库.从零拷贝数据库复制是不确定的.

虽然从技术上来说,如果你想将它作为一个__CODE__来自背景循环线程的暴露,它是有意义的,特别是如果你真的想要抽象Realm.

(PS:__CODE__已经实现了__CODE__.)