RealmObject 的 Kotlin 数据 class
Kotlin data class of RealmObject
我正在使用 Kotlin 和 Realm 写数据 class
data class AuthToken(val register: Boolean,
val token: String,
val tokenSecret: String,
val user: AuthUser)
我要把数据存到db,所以我用Realm来存。但正如我们所知,如果我想将 class 保存到 Realm,AuthToken
class 必须扩展 RealmObject
.
这就是问题所在,Kotlin 说数据 classes 不能扩展 classes。
所以我放弃了数据 class,只是使用普通的 Kotlin class 作为模型然后另一个问题来了:
Kotlin class 没有 getter 或 setter。正如我们所知,Realm class 必须将所有 属性 设置为私有并写入 getter 和 setter.
现在我想知道如何解决这个问题。
any class 中的任何 Kotlin 属性 都有一个 getter 和一个 setter。所以我相信你的代码应该按照你自己的建议工作(没有 data
修饰符)。
https://kotlinlang.org/docs/reference/data-classes.html#data-classes
https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#properties
P.S。我同意有关属性的文档在该主题上不清楚
Realm 目前不支持数据 类。您可以在此处查看如何在 Kotlin 中编写 Realm 兼容模型 类 的示例:https://github.com/realm/realm-java/tree/master/examples/kotlinExample/src/main/kotlin/io/realm/examples/kotlin/model
public open class Person(
@PrimaryKey public open var name: String = "",
public open var age: Int = 0,
public open var dog: Dog? = null,
public open var cats: RealmList<Cat> = RealmList(),
@Ignore public open var tempReference: Int = 0,
public open var id: Long = 0
) : RealmObject() {
我正在使用 Kotlin 和 Realm 写数据 class
data class AuthToken(val register: Boolean,
val token: String,
val tokenSecret: String,
val user: AuthUser)
我要把数据存到db,所以我用Realm来存。但正如我们所知,如果我想将 class 保存到 Realm,AuthToken
class 必须扩展 RealmObject
.
这就是问题所在,Kotlin 说数据 classes 不能扩展 classes。 所以我放弃了数据 class,只是使用普通的 Kotlin class 作为模型然后另一个问题来了:
Kotlin class 没有 getter 或 setter。正如我们所知,Realm class 必须将所有 属性 设置为私有并写入 getter 和 setter.
现在我想知道如何解决这个问题。
any class 中的任何 Kotlin 属性 都有一个 getter 和一个 setter。所以我相信你的代码应该按照你自己的建议工作(没有 data
修饰符)。
https://kotlinlang.org/docs/reference/data-classes.html#data-classes https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#properties
P.S。我同意有关属性的文档在该主题上不清楚
Realm 目前不支持数据 类。您可以在此处查看如何在 Kotlin 中编写 Realm 兼容模型 类 的示例:https://github.com/realm/realm-java/tree/master/examples/kotlinExample/src/main/kotlin/io/realm/examples/kotlin/model
public open class Person(
@PrimaryKey public open var name: String = "",
public open var age: Int = 0,
public open var dog: Dog? = null,
public open var cats: RealmList<Cat> = RealmList(),
@Ignore public open var tempReference: Int = 0,
public open var id: Long = 0
) : RealmObject() {