我可以在 Kotlin 中对 Room 和 API 调用使用相同的数据 class 吗?

Can I use same data class for Room and API calls in Kotlin?

我的应用程序中有一个相当简单的数据 class:


data class ModelSlide(
    val title: String,
    val info: String,
    val image: String
)


当我创建一个 API 调用时,我返回 json。我使用来自 json 和 ModelSlide 的信息来创建 ArrayList<ModelSlide>。然后我使用适配器将此 arrayList 加载到 viewpager 中。相当简单的东西。

现在,我才刚刚开始使用 Room。遗憾的是,由于我在这方面还很陌生,所以我一直在为 Room 创建重复数据 classes,如下所示:



@Entity
data class User(
    @PrimaryKey val slideId: Int,
    @ColumnInfo(name = "title") val title: String?,
    @ColumnInfo(name = "info") val firstName: String?,
    @ColumnInfo(name = "image") val lastName: String?
)

这种方法可行,但对我这个 Room 的初学者来说,这在某种程度上似乎是多余的。

我可以将我的两个工作流与相同的数据结合起来吗class?

回顾

我的问题

我可以使用相同的数据 class 来创建 ArrayLists 和 Room 吗?

如果是这样,数据 class 会是什么样子?

根据您的要求,您可以使用单个数据 class 创建 ArrayLists 并使用 Room。检查以下内容:

@Entity(tableName = "User")
data class ModelSlide(
    val title: String?,
    val info: String?,
    val image: String?,
    @PrimaryKey(autoGenerate = true)
    val slideId: Int = 0
)