无法找到填充字段 – 使用Kotlin与房间数据库
我正在与Room持久性库集成。 我在Kotlin有一个数据类:
@Entity(tableName = "story") data class Story ( @PrimaryKey val id: Long, val by: String, val descendants: Int, val score: Int, val time: Long, val title: String, val type: String, val url: String )
@Entity
和@PrimaryKey
注释用于Room库。 当我尝试构建时,错误是失败的:
Error:Cannot find setter for field. Error:Execution failed for task ':app:compileDebugJavaWithJavac'. > Compilation failed; see the compiler error output for details.
我也尝试提供一个默认的构造函数:
@Entity(tableName = "story") data class Story ( @PrimaryKey val id: Long, val by: String, val descendants: Int, val score: Int, val time: Long, val title: String, val type: String, val url: String ) { constructor() : this(0, "", 0, 0, 0, "", "", "") }
但是这不起作用。 需要注意的是,如果我把这个Kotlin类转换成一个带有getter和setter的Java类,它就可以工作。 任何帮助表示赞赏!
由于你的领域用val
标记,他们是有效的,没有setter字段。
试着用var
切换val
。 您可能还需要初始化这些字段。
@Entity(tableName = "story") data class Story ( @PrimaryKey var id: Long? = null, var by: String = "", var descendants: Int = 0, var score: Int = 0, var time: Long = 0L, var title: String = "", var type: String = "", var url: String = "" )