簡體   English   中英

Android Room 自動生成和初始化

[英]Android Room auto-generate and initialization

我有一個包含Stuff實體的 Room 數據庫。 這些實體具有將自動生成的 ID:

@Entity(tableName = "stuff")
data class Stuff(val text: String) {
    @PrimaryKey(autoGenerate = true) var id: Int = 0
}

我不喜歡我的代碼的兩件事:

  1. 我用 0 初始化 id,即使它應該由 Room 初始化。
  2. id 數據成員是可變的。

我嘗試使用lateinit var,但編譯器不允許我在原始類型上執行此操作。 Kotlin 有沒有辦法克服上面提到的兩個問題?

使用輔助構造函數解決這個問題有什么想法?

@Entity(tableName = "stuff")
data class Stuff(
  @PrimaryKey(autoGenerate = true)
  val id: Int,
  val text: String
) {
   constructor(text: String) : this(0,text)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM