假设我有一个Book对象(id,名称,作者)。
假设我有很多书籍,是否可以仅检索这些书籍的名称而无需检索整个对象?
答案 0 :(得分:0)
假设我有很多书籍,是否可以仅检索这些书籍的名称而无需检索整个对象?
好的,请参阅:
private RealmChangeListener<RealmResults<Book>> listener = (results) -> {
adapter.updateData(results);
};
RealmResults<Book> books;
void blah() {
books = realm.where(Book.class).findAllAsync();
books.addChangeListener(listener);
}
和
public class MyAdapter extends ___Adapter {
...
public class ViewHolder /* ... */ {
public void bind(Book book) {
bookName.setText(book.getName());
}
}
}
之所以可行,是因为RealmResults评估“如何访问给定对象”时,您实际上通过调用book.getName()
仅加载了书名。
基本上,托管的RealmObjects是延迟访问的,并且Realm本身仅在调用给定属性的访问器时才加载给定对象属性:在这种情况下为book.getName()
。
关于获得List<String>
,不是真的。这样将从每个对象读取属性。