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クラスはすべてのプロパティをプライベートに設定し、ゲッターとセッターを書き込む必要があります。
今私は問題を解決する方法を考えています。
現在、レルムはデータクラスをサポートしていません。 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() {
anyクラスのKotlinプロパティには、ゲッターとセッターがあります。だから私はあなたのコードがあなたが提案したとおりに機能するはずだと信じています(data
修飾子なしで)。
https://kotlinlang.org/docs/reference/data-classes.html#data-classeshttps://kotlinlang.org/docs/reference/Java-to-kotlin- interop.html#properties
追伸プロパティに関するドキュメントが主題について不明確であることに同意します