我正在与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
)
Run Code Online (Sandbox Code Playgroud)
这些@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.
Run Code Online (Sandbox Code Playgroud)
我也试过提供一个默认的构造函数:
@Entity(tableName = "story")
data class Story (
@PrimaryKey val id: Long,
val by: String,
val descendants: Int,
val score: Int, …Run Code Online (Sandbox Code Playgroud) 我正在使用房间图书馆,我有下面提到的实体:
@Parcelize
@Entity(tableName = "tb_option")
data class OptionsTable(
var question_id: Int? = null,
var option_id: Int? = null,
var option: String? = null,
var is_selected: Int? = null,
@PrimaryKey(autoGenerate = true)
var sr_no: Int = 0) : Parcelable
Run Code Online (Sandbox Code Playgroud)
如您所见,我已将所有字段声明为,var但仍显示错误为:
error: Cannot find setter for field.
e:
e: private java.lang.Integer is_selected;
e:
^
Run Code Online (Sandbox Code Playgroud)
请为此提出一些解决方案。
谢谢