gpt4 book ai didi

android - @Ignore 如何在带有 Room 的数据类中工作

转载 作者:行者123 更新时间:2023-12-02 12:53:01 26 4
gpt4 key购买 nike

我试图为 Room 创建一个数据类,并且该类也有一个仅用于 View 的字段。我不想将数据保存到 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

上面的代码有效。但是,每当我尝试使用 @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).

如果我从构造函数中删除变量,例如
    @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
}

字段 selected不会被写入包裹中。如何将变量保留在类中而不创建列并仍将其保留在包裹中?

谢谢

最佳答案

@Ignore在这种情况下,目前 requires @JvmOverloads注解:

data class MyTable @JvmOverloads constructor(
...
@Ignore var selected: Boolean? = false
)

关于android - @Ignore 如何在带有 Room 的数据类中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56927425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com