RealmObject的Kotlin数据类

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

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

我必须将数据保存到数据库,所以我使用Realm来保存它。 但是据我们所知,如果我想把类保存到Realm中, AuthToken类必须扩展RealmObject

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

Kotlin类没有getter或setter。 正如我们所知,Realm类必须将所有属性设置为private,并写getter和setter。

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

2 Solutions collect form web for “RealmObject的Kotlin数据类”

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

任何类的任何科特林财产都有一个吸气和一个二传手。 所以我相信你的代码应该像你自己的建议一样工作(没有data修饰符)。

https://kotlinlang.org/docs/reference/data-classes.html#data-classes https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#properties

PS我同意关于这个主题的文件不清楚

  • 我怎样才能在kotlin的单行中声明值?
  • 使用Kotlin WHEN子句进行<,<=,> =,>比较
  • Kotlin Textview id引用不适用于非英文字符
  • 将应用程序传递给AndroidViewModel
  • 无法获得Room DB与Kotlin一起运行
  • 改进API调用:如何确保在进行api调用后该值不为空?
  • 在Kotlin中编号为MutableList <Int>的奇数大小返回带有迭代器的IndexOutOfBoundsException
  • 在kotlin使用房间作为单身人士
  • 在Kotlin中,我可以覆盖一些现有的运营商,但是如何创建新的运营商呢?
  • Kotlin - 具有泛型返回类型的抽象函数
  • Kotlin:内联lambda和重载解析模糊
  • Kotlin language will be the best programming language for Android.