Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin Can';t初始化model.Products的对象解析器,未找到可接受的构造函数_Kotlin_Anko - Fatal编程技术网

Kotlin Can';t初始化model.Products的对象解析器,未找到可接受的构造函数

Kotlin Can';t初始化model.Products的对象解析器,未找到可接受的构造函数,kotlin,anko,Kotlin,Anko,我跟随学习Kotlin,所以我创建了这个类 data class Products(val id: Long, val name: String, val description: String, val price: Long, val image: String, val status: String, val type: String ) { companion object { val TABLE_NAME = "gdbl_products"

我跟随学习Kotlin,所以我创建了这个类

data class Products(val id: Long, val name: String, val description: String, val price: Long, val image: String, val status: String, val type: String ) {

    companion object {
        val TABLE_NAME          = "gdbl_products"
        val COLUMN_ID           = "id"
        val COLUMN_NAME         = "name"
        val COLUMN_DESCRIPTION  = "description"
        val COLUMN_PRICE        = "price"
        val COLUMN_IMAGE        = "image"
        val COLUMN_STATUS       = "status"
        val COLUMN_TYPE         = "type"
    }
}
在Activity.kt中,我调用:

var rowParser = classParser<Products>() => exception show: Can't initialize object parser for model.Products, no acceptable constructors found
var rowParser=classParser()=>异常显示:无法为model.Products初始化对象解析器,未找到可接受的构造函数
请告诉我为什么以及如何修复它这部分的
classParser()
看起来像

val applicableConstructors = clazz.declaredConstructors.filter { ctr ->
    if (ctr.isVarArgs || !Modifier.isPublic(ctr.modifiers)) return@filter false
    val types = ctr.parameterTypes
    return@filter types != null && types.isNotEmpty() && types.all(::hasApplicableType)
}
所以你必须找出,为什么你的构造函数实际上不符合这个要求。它不应该使用varArgs,必须是公共的,并且必须具有适用的参数类型。乍一看,一切都很好,但您可以通过删除单个参数来测试哪些部分是错误的,直到它工作为止


此外,该示例在companion中定义了
val Book.COLUMN\u ID=“ID”
,而您只定义了
val COLUMN\u ID=“ID”
。第一个是扩展属性,而您的是伴生对象的属性。

我无法定义val Products.COLUMN_ID=“ID”它有例外,Android Studio建议我“将扩展属性初始值设定项转换为getter”最后一部分只是一个注释。也许这个例子是错的。