我有从Realm
收到的RealmResults,例如
RealmResults<StepEntry> stepEntryResults = realm.where(StepEntry.class).findAll();
现在我想将
RealmResults<StepEntry>
转换为ArrayList<StepEntry>
我尝试了
ArrayList<StepEntry> stepEntryArray = new ArrayList<StepEntry>(stepEntryResults));
但是我的
ArrayList
中的项目不是我的StepEntry
对象,而是StepEntryRealmProxy
如何转换?
任何帮助或建议将不胜感激。
最佳答案
要急切地从Realm中读取每个元素(并因此使列表中的所有元素都变得不受管理,您可以这样做):
List<StepEntry> arrayListOfUnmanagedObjects = realm.copyFromRealm(realmResults);
但是通常来说,除非您想使用GSON序列化对象(特别是因为它使用反射而不是使用getter读取字段数据)来进行序列化,否则绝对没有理由,因为Realm的设计方式是该列表公开了更改监听器,让您仅通过观察对数据库所做的更改就可以使UI保持最新状态。