Я начинаю забирать Kotlin с нескольких дней.Я пытаюсь написать абстрактный класс Dao с общими функциями (copyOrUpdate, delete, ...), но я застрял на findFirst & findAll.Моя база данных - Realm.
Это часть моего Dao:
abstract class Dao<T : RealmModel>() {
//Get Realm Instance
val db: Realm by lazy {
Realm.getDefaultInstance()
}
//Delete - 1 Object
fun delete(input: T) {
if (db.isInTransaction) {
input.deleteFromRealm()
} else {
db.executeTransaction { realm -> input.deleteFromRealm() }
}
}
}
Я пытаюсь добавить функцию findFirst ().Я не уверен, возможно ли это.Вот неработающая часть борьбы:
//Get First
fun findFirst(classType: T): T {
return db.where(T::class.java)
.findFirst()
}
Есть ли способ решить эту проблему?На данный момент эта функция находится в моем классе UserDao.
class UserDao() : Dao<User>() {
//where
private fun where(): RealmQuery<User> {
return db.where<User>()
}
// Find First
fun findFirst(): User? {
return where()
.findFirst()
}
}