sad*_*dat 7 android kotlin android-room
我试图为 Room 创建一个数据类,该类还有一个仅用于视图的字段。我不想将数据保存到 Room 中。
@Entity(tableName = "MyTable")
@Parcelize
data class MyTable(
@SerializedName("id") @PrimaryKey val id: String,
@SerializedName("field1") val field1: String?,
var selected: Boolean? = false //todo use @Ignore
) : Parcelable
Run Code Online (Sandbox Code Playgroud)
上面的代码有效。但是,每当我尝试将@Ignore
注释与变量一起使用时selected
。它给了我以下错误
error: Entities and Pojos must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type).
Run Code Online (Sandbox Code Playgroud)
如果我从构造函数中删除变量,例如
@Entity(tableName = "MyTable")
@Parcelize
data class MyTable(
@SerializedName("id") @PrimaryKey val id: String,
@SerializedName("field1") val field1: String?
) : Parcelable{
var selected: Boolean? = false //todo use @Ignore
}
Run Code Online (Sandbox Code Playgroud)
该字段selected
不会写入包裹中。如何在不创建列的情况下将变量保留在类中,同时仍将其保留在包中?
谢谢
@Ignore
在这种情况下,目前需要 @JvmOverloads
注释:
data class MyTable @JvmOverloads constructor(
...
@Ignore var selected: Boolean? = false
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2275 次 |
最近记录: |