Ошибка: Содержит незаконное финальное поле – Котлин

Я использую класс данных Kotlin с аннотацией Realm, Gson для получения данных с сервера.

Проблема: когда я запускаю проект в студии android, он дает следующую ошибку

Error:Class "VenderConfig" contains illegal final field "name". 

Я изучаю Котлина, поэтому у меня нет большой идеи об этом.

Мой класс VenderConfig :

 @RealmClass class VenderConfig( @SerializedName("name") val name: String? = null, @SerializedName("website") val wb_url: String? = null, @SerializedName("icon") val icon: String? = null, @SerializedName("logo") val logo: String? = null, @SerializedName("description") val description: String? = null, @PrimaryKey @SerializedName("id") val id: Int? = null ) : RealmObject() { } - @RealmClass class VenderConfig( @SerializedName("name") val name: String? = null, @SerializedName("website") val wb_url: String? = null, @SerializedName("icon") val icon: String? = null, @SerializedName("logo") val logo: String? = null, @SerializedName("description") val description: String? = null, @PrimaryKey @SerializedName("id") val id: Int? = null ) : RealmObject() { } 

Я также попытался открыть ключевое слово open с полем и удалить ключевое слово данных, но это не решило проблему.

Вы должны использовать ключевое слово var для объявления изменяемых свойств. val означает неизменные (конечные).

 var name: String? = null name = "Kotlin" // OK val immutableName: String? = null immutableName = "Java" // won't compile, val cannot be reassigned 

Для получения дополнительной информации: свойства и поля

Обратите внимание, что я не знаком с Realm, и это может не решить вашу проблему.

Разве класс не должен быть открытым ? (я тоже 😉

@ Realm-database: realm-java-3.1.0.zip \ examples \ kotlinExample \ src \ main \ kotlin \ io \ realm \ examples \ kotlin \ model \ Person.kt

  package io.realm.examples.kotlin.model import io.realm.RealmList import io.realm.RealmObject import io.realm.annotations.Ignore import io.realm.annotations.PrimaryKey // ... // Furthermore, the class and all of the properties // must be annotated with open // (Kotlin classes and methods are final by default). // open class Person( ... ) : RealmObject() { // The Kotlin compiler generates standard getters and setters. // Realm will overload them and code inside them is ignored. // So if you prefer you can also just have empty abstract methods. }