我有一个RealmResults <Student>
个对象。我想将其转换为RealmList <Student>
对象。有什么建议?
答案 0 :(得分:20)
RealmList <Student> results = new RealmList<Student>();
results.addAll(realmResultList.subList(0, realmResultList.size()));
答案 1 :(得分:13)
请尝试让我知道这是否适合您。
RealmList <Student> finalList = new RealmList<Student>();
finalList.addAll(yourRealmResults.subList(0, yourRealmResults.size()));
答案 2 :(得分:13)
自0.87.0
- 添加了Realm.copyFromRealm(),用于创建Realm对象的分离副本(#931)。
只允许返回列表List<E extends RealmObject>
答案 3 :(得分:9)
RealmResults
实现List
接口,RealmList
也是如此。
RealmList <Student> results = new RealmList<Student>();
results.addAll(realmResultsList);
答案 4 :(得分:2)
在新的更新中,您可以使用 copyFromRealm 方法执行此操作:
RealmList<Student> finalList = realm.copyFromRealm(resultsAnswers);
答案 5 :(得分:0)
@JemshitIskenderov这应该为你复制。
public RealmList<Student> convertResultToList(RealmResult<Student> realResultsList){
RealmList <Student> results = new RealmList<Student>();
for(Student student : realResultsList){
results.add(copy(student));
}
}
private Student copy(Student student){
Student o = new Student();
o.setCreated(student.getCreated());
o.setModified(student.getModified());
o.setDeleted(student.getDeleted());
o.setName(student.getName());
//List more properties here
return o;
}
答案 6 :(得分:0)
<强> 代码: 强>
keytool -importkeystore -deststorepass password -destkeystore .keystore -srckeystore platform.p12 -srcstoretype PKCS12 -srcstorepass android
keytool -list -v -keystore .keystore
这是我的要点:https://gist.github.com/jmperezra/9b4708051eaa2686c83ebf76066071ff
答案 7 :(得分:0)
另一种方法:
RealmList<YourClass> dummy = new RealmList<>();
Iterator<YourClass> it = realmResultsList.listIterator();
while (it.hasNext()) {
dummy.add(it.next());
}
答案 8 :(得分:0)
RealmQuery<E>.findAll()
)的集合,则返回RealmResults 。否则,单个对象查询将返回 RealmObject 。
托管和非托管对象
RealmResults
是托管对象,这意味着它们无法在Realm事务之外进行操作,并且被限制在创建它们的线程中。将RealmResults
转换为RealmList
将使数据非托管,正如@epicpandaforce指出的那样,这意味着列表中的对象不再连接到数据库并且基本上是正常的可以在线程之间传输和操纵的Java对象。
将RealmResults
转换为RealmList
:
RealmResults<User> results = realm.where(User.class).findAll();
RealmList<Users> users = realm.copyFromRealm(results);
对非托管对象的更改不会以任何方式影响数据库中的原始对象,除非执行与realm.copyToRealm(users)
相反的copyFromRealm()
。请注意,RealmLists
可以被管理或取消管理,因为来自RealmObject
的{{1}}可以具有以下结构,其中RealmResult
在这种情况下是托管对象:
RealmList
最后,class User {
int id;
String name;
RealmList<String> petNames;
}
会返回copyFromRealm()
,因此也可以
List
答案 9 :(得分:0)
Realm具有一些新功能签入文档 Realm Documentation
Realm具有copyfromRealm函数,可用于将结果转换为列表
RealmList<Student> student=realm.copyfromRealm(Realmresult);