Realm技术咨询:如何从查询结果中提取name属性
解决Realm查询结果提取name字段的问题
嗨,看你的Log输出,你已经成功拿到了Person对象的实例(或者包含该对象的结果集)啦!要单独提取name字段其实非常简单,分两种情况来处理:
情况1:查询到单个Person对象
如果你用findFirst()这类方法拿到了单个Person实例,直接调用对象的getName()方法(或者如果你的Person类里name是公共字段,直接访问person.name)就能获取到name值:
// 示例查询代码 Person person = realm.where(Person.class).equalTo("id", 0).findFirst(); if (person != null) { // 记得判空,避免空指针 String targetName = person.getName(); Log.d("TAG", targetName); // 这里就会输出你想要的Jonathon }
情况2:查询到RealmResults结果集
如果你的查询返回的是多个Person对象的集合(比如用了findAll()),只需要遍历集合,逐个提取每个对象的name即可:
RealmResults<Person> personList = realm.where(Person.class).findAll(); for (Person person : personList) { String name = person.getName(); Log.d("TAG", name); // 依次输出每个Person的name字段 }
补充说明
你之前Log输出完整对象信息的原因,是因为直接打印Person对象时,默认调用了类中重写的toString()方法,所以会输出所有属性。只要直接访问name对应的getter或字段,就能拿到单独的name值啦!
内容的提问来源于stack exchange,提问作者Jonathon
相关产品推荐
相关产品推荐

