将 java-realm 代码转换为 kotlin-realm

问题描述 投票:0回答:0

我正在将我的项目从 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
    
java kotlin realm
© www.soinside.com 2019 - 2024. All rights reserved.