J'essaie d'utiliser à la fois la bibliothèque Android Room et la syntaxe compacte de Kotlin pour spécifier un constructeur avec des valeurs d'argument par défaut. Quelque chose comme ceci :
@Entity
class MyEntity(var myString:String = "non-trivial string") {
@PrimaryKey(autoGenerate = true)
var myIndex:Int = 0
}
Mais je reçois ce message d'avertissement :
Il existe plusieurs bons constructeurs et Room choisira le constructeur sans argument. Vous pouvez utiliser l'annotation @Ignore pour éliminer les constructeurs indésirables.
Où la syntaxe permet-elle d'écrire l'annotation @Ignore de Room avec ce style compact de constructeur Kotlin ?
Je sais que je peux faire quelque chose comme ceci pour éliminer ce message d'avertissement, mais c'est plus verbeux. De plus, la valeur par défaut de l'arg du constructeur semble redondante et inutile :
@Entity
class MyEntity() {
@Ignore
constructor(myString:String = "non-trivial string") : this() {
this.myString = myString
}
@PrimaryKey(autoGenerate = true)
var myIndex:Int = 0
var myString:String? = null
}
Comment déclarer une entité Room tout en profitant de la brièveté de Kotlin ?
Je vous remercie de votre attention.