Sam*_*ert 14 sqlite android immutability kotlin android-room
我一直在探索Room数据库对象映射库,我想到了一些奇怪的东西.
正如这个答案所暗示的那样,实体数据模型不能具有不可变属性.
但我查看了google与kotlin的持久示例,也Room适用于不可变属性.请从示例中检查此数据类.
这种行为可能是什么原因?
如果我们可以创建不可变值(val属性),这可能是一个很好的功能,因为这会限制程序员在创建对象后更改唯一标识符(如id).
这很奇怪,因为我可以使我的实体类用于val我的所有字段而不会出现问题
@Entity(tableName = "repo")
data class RepoEntity(
@PrimaryKey @ColumnInfo(name = "id") @SerializedName("id") val id: Int,
@ColumnInfo(name = "name") @SerializedName("name") val name: String,
@ColumnInfo(name = "full_name") @SerializedName("full_name") val fullName: String,
@Embedded(prefix = "owner") @SerializedName("owner") val owner: RepoOwnerEntity,
@ColumnInfo(name = "html_url") @SerializedName("html_url") val htmlUrl: String,
@ColumnInfo(name = "description") @SerializedName("description") val description: String?
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2105 次 |
| 最近记录: |