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