当前位置:  开发笔记 > Android > 正文

RealmObject的Kotlin数据类

如何解决《RealmObject的Kotlin数据类》经验,为你挑选了1个好方法。

我正在使用Kotlin和Realm编写数据类

data class AuthToken(val register: Boolean,
                     val token: String,
                     val tokenSecret: String,
                     val user: AuthUser)

我必须将数据保存到db,所以我使用Realm来保存它.但是正如我们所知,如果我想将类保存到Realm,那么AuthToken该类必须扩展RealmObject.

这就是问题,Kotlin说数据类不能扩展类.所以我放弃数据类,只使用普通的Kotlin类作为模型,然后另一个问题来了:

Kotlin类没有吸气剂或固定剂.我们知道Realm类必须将所有属性设置为private并编写getter和setter.

现在我想知道如何解决这个问题.



1> Christian Me..:

Realm目前不支持Data类.您可以在此处查看如何在Kotlin中编写与Realm兼容的模型类的示例:https://github.com/realm/realm-java/tree/master/examples/kotlinExample/src/main/kotlin/io/realm/examples /科特林/模型

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 = RealmList(),
        @Ignore public open var tempReference: Int = 0,
        public open var id: Long = 0
) : RealmObject() {


数据类从根本上是有问题的,因为它们基本上做了AutoValue所做的事情,所以我们可以支持数据类作为RealmObjects是值得怀疑的.请参阅https://github.com/realm/realm-java/issues/4291,其中介绍了我们当前的想法.(搜索AutoValue,这是一个很长的文本).
我们对此有任何更新吗?在Realm 3.0.0中,我看到仍然不允许使用最终字段(这就是你使用open的原因),但是你丢失了自动提供的派生方法数据类.
推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有