Bhu*_* BS 7 android realm kotlin
我正在Kotlin中创建一个Realm对象.
领域对象:
open class PurposeModel(var _id: Long?,
var purposeEn: String?,
var purposeAr: String?) : RealmObject()
Run Code Online (Sandbox Code Playgroud)
当我编译上面的代码时,我收到此错误:
error: Class "PurposeModel" must declare a public constructor with no arguments if it contains custom constructors.
Run Code Online (Sandbox Code Playgroud)
我在Kotlin找不到与此相关的任何问题.我该如何解决这个问题?
Bhu*_* BS 19
要清除此错误,您必须为属性分配默认值.
像这样更改Realm对象:
open class PurposeModel(
var _id: Long? = 0,
var purposeEn: String? = null,
var purposeAr: String? = null
) : RealmObject()
Run Code Online (Sandbox Code Playgroud)
现在它将编译.
原因:
当未分配的默认值将成为构造函数的参数时,Realm需要一个不带参数的公共构造函数.当分配默认值时,它将成为类的属性.因此,默认情况下您将获得空构造函数并清除代码.
这就是为什么我更喜欢这样定义它们
open class PurposeModel : RealmObject() {
@field:PrimaryKey
var id: Long? = null
var purposeEn: String? = null
var purposeAr: String? = null
}
Run Code Online (Sandbox Code Playgroud)