这是标准领域查询:
private void doQuery() {
RealmResults<User> result = realm.where(User.class)
.equalTo("name", "John")
.or()
.equalTo("name", "Peter")
.findAll();
}
我想将此作为带参数的函数使用,意思是用户&amp; User.class 不会被硬编码,它将作为参数提供。像这样的东西,但这是错的。请告知如何做到这一点。
编辑:似乎“User.class”的问题已解决,但“用户”仍然存在。
private void doQuery(Class<? extends RealmObject> realmClass) {
RealmResults<realmObject> result = realm.where(realmClass)
.equalTo("name", "John")
.or()
.equalTo("name", "Peter")
.findAll();
}
编辑:当你给我减去时,请好好解释原因。
谢谢。
答案 0 :(得分:1)
您需要使用泛型来定义输入,如下所示:
private <T extends RealmObject> RealmResults<T> doQuery(Class<T> realmClass) {
RealmResults<T> results = realm.where(realmClass)
.equalTo("name", "John")
.or()
.equalTo("name", "Peter")
.findAll();
return results;
}