java.lang.NoSuchMethodException:<init> []

时间:2019-11-07 16:48:57

标签: android android-studio kotlin sugarorm

我用过Kotlin,当我尝试用sugarORM获取数据时出现了一些错误

D/SQL Log: SQLiteQuery: SELECT * FROM PRODUCT_SUGAR_ORM W/System.err: java.lang.NoSuchMethodException: <init> []
 at java.lang.Class.getConstructor(Class.java:531)
 at java.lang.Class.getDeclaredConstructor(Class.java:510)
 at com.orm.SugarRecord.getEntitiesFromCursor(SugarRecord.java:212)
 at com.orm.SugarRecord.find(SugarRecord.java:204)
 at com.orm.SugarRecord.listAll(SugarRecord.java:127)

这是我的代码

data class ProductSugarORM(
        var base_price: Double,
        var category: Int,
        val created_on: String,
        var description: String,
        val id: Int,
        var name: String,
        var sell_price: Double,
        var stock: Int,
        val store: Int,
        val type: String,
        val updated_on: String
):SugarRecord(){
    fun ProductSugarORM(){}
}

我想使用Log.w("load-local", "${SugarRecord.listAll(ProductSugarORM::class.java)}")

查看结果

1 个答案:

答案 0 :(得分:0)

请注意in the documentation,您的实现需要一个空的构造函数。您将需要添加一个空的构造函数。那将意味着为所有这些参数添加默认值,这可能没有意义。

我不确定您是否仍然可以使用数据类,因为它们是不可变的,而且看来Sugar在幕后使用了一些可能需要可变性的反射(不知道)。