Kotlin の RealmObject データクラス 質問する

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 クラスをモデルとして使用すると、別の疑問が生じます。

Kotlin クラスにはゲッターもセッターもありません。ご存知のとおり、Realm クラスではすべてのプロパティをプライベートに設定し、ゲッターとセッターを記述する必要があります。

今、私はその問題をどうやって解決するか考えています。

ベストアンサー1

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() {

おすすめ記事