【发布时间】:2018-11-19 11:49:43
【问题描述】:
几天后我开始接触 Kotlin。 Atm 我正在尝试使用常用功能(copyOrUpdate,delete,...)编写一个抽象的 Dao 类,但我被困在 findFirst 和 findAll 上。 我的数据库是 Realm。
这是我的道:
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()
}
}
【问题讨论】: