我正在将我的项目从 Java 切换到 Kotlin,我遇到了领域问题,java-realm 方法与 Kotlin-realm 不同,因为他们在项目中将 Kotlin-realm 更改为 java-realm 我的问题是我不熟悉 Kotlin-realm 函数 请将这部分基于 Java-realm 的 realm 代码更改为具有相同功能的 Kotlin-realm:
Realm.getDefaultInstance()
.where(Message::class.java)
.equalTo("threadId", threadId)
.let {
when (query.isEmpty()) {
true -> it
false -> it
.beginGroup()
.contains("body", query, Case.INSENSITIVE)
.or()
.contains("parts.text", query, Case.INSENSITIVE)
.endGroup()
}
}
.sort("date")
.findAllAsync()
override fun getMessages(threadId: Long, query: String): RealmResults<Message> {
return Realm.getDefaultInstance()
.where(Message::class.java)
.equalTo("threadId", threadId)
.let {
when (query.isEmpty()) {
true -> it
false -> it
.beginGroup()
.contains("body", query, Case.INSENSITIVE)
.or()
.contains("parts.text", query, Case.INSENSITIVE)
.endGroup()
}
}
.sort("date")
.findAllAsync()
}
open class Message : RealmObject {
@PrimaryKey var id: Long = 0
@Index var threadId: Long = 0
var body: String = ""
var errorCode: Int = 0
var date: Long = 0
var deliveryStatus: Int = Sms.STATUS_NONE