私はレルムオブジェクト内コトリン。
レルムオブジェクト:
open class PurposeModel(var _id: Long?,
var purposeEn: String?,
var purposeAr: String?) : RealmObject()
上記のコードをコンパイルすると、次のエラーが発生します:
error: Class "PurposeModel" must declare a public constructor with no arguments if it contains custom constructors.
Kotlin でこれに関連する質問が見つかりません。どうすれば解決できますか?
ベストアンサー1
このエラーをクリアするには、プロパティにデフォルト値を割り当てる必要があります。
Realm オブジェクトを次のように変更します。
open class PurposeModel(
var _id: Long? = 0,
var purposeEn: String? = null,
var purposeAr: String? = null
) : RealmObject()
これでコンパイルされます。
理由:
デフォルト値が割り当てられていない場合は、それがコンストラクタのパラメータになります。Realm には引数のないパブリック コンストラクタが必要です。デフォルト値が割り当てられている場合は、それがクラスのプロパティになります。そのため、デフォルトで空のコンストラクタが得られ、コードがクリーンになります。