Класс данных Kotlin для RealmObject

Я использую Kotlin и Realm для записи класса данных

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

Мне нужно сохранить данные в db, поэтому я использую Realm для его сохранения. Но, как мы знаем, если я хочу сохранить класс в Realm, класс AuthToken должен расширить RealmObject .

В этом проблема, говорит Котлин, классы данных не могут расширять классы. поэтому я отказываюсь от класса данных, просто используя обычный класс Kotlin в качестве модели, возникает другой вопрос:

Класс Kotlin не имеет геттера или сеттера. Как мы знаем, класс Realm должен установить все свойство private и написать getter и setter.

Теперь мне интересно, как решить проблему.

В настоящее время Realm не поддерживает классы данных. Вы можете увидеть пример того, как писать классы классов совместимых с Realm в Kotlin здесь: 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() { 

Любое свойство 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

PS Я согласен, что документы о свойствах неясны по этому вопросу