Cannot find setter for field - 錯誤解決記錄

使用JetPack框架 Room 時,報錯
Cannot find setter(or getter) for field.
可能原因有兩個:

  • 字段有 val限定符,改爲 var
  • 不能擁有從isXxx 開始的字段名。例如:
   @Entity(tableName = "user")
   data class User (
        @PrimaryKey var id: Long? = null,
        var userName: String = "",
        var isConnectedToFB: Boolean = false,
    )

根據https://stackoverflow.com/a/46753804/2914140,如果有自動生成的主鍵,則應這樣寫:

@Entity(tableName = "story")
data class Story (
        val by: String,
        val descendants: Int,
        val score: Int,
        val time: Long,
        val title: String,
        val type: String,
        val url: String
)  {
    @PrimaryKey(autoGenerate = true)
    var id: Int = 0
}

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章