4
votes

Comment ignorer un champ d'entité avec pièce

J'ai une classe de données à partir de laquelle j'ai créé une Entité pour ma base de données.

Voici ma classe de données:

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).
public final class Tapligh implements android.os.Parcelable {
             ^

Maintenant, en ajoutant le champ ci-dessous dans ma classe de données Tapligh , j'obtiendrai une erreur:

 @Ignore
 @SerializedName("images") var images: List<String>?

J'obtiens cette erreur:

XXX


2 commentaires

Copie possible de Persistance de la pièce: erreur: entités et Les Pojos doivent avoir un constructeur public utilisable Utilisez un constructeur vide. Consultez la réponse ici: stackoverflow.com/a/54107314/2519748


Utilisez un constructeur vide. Consultez la réponse ici: stackoverflow.com/a/54107314/2519748


3 Réponses :


0
votes

Parfois, un nouveau champ crée une erreur lorsque la classe implémente Parcelable, alors essayez de supprimer Parcelable et le corps de la classe, remettez Parcelable et implémentez à nouveau les membres ou implémentez simplement l'interface Serializable au lieu de Parcelable.


0 commentaires

0
votes

Le Taplight fourni contient des erreurs:

@PrimaryKey(autoGenerate = true) var id: Long,
@SerializedName("title") var title: String?,
@SerializedName("type") var type: Int?,
@SerializedName("os") var os: Int?,
@SerializedName("logo") var logo: String?,
@SerializedName("template") var template: String?,
@SerializedName("action") var action: String?,
@SerializedName("date") var date: String?,
@Embedded
@SerializedName("videos") var videos: Videos?) {

constructor() : this(0,null,null,null,null,null,null,null,null)

videos semble être le dernier argument et le constructeur a été mal appelé. Je ne sais pas s'il s'agissait d'une erreur de copier-coller ou de formatage, mais j'espère que cela pourra vous aider.


2 commentaires

le problème n'est pas vidéos , quand j'essaye d'ajouter @Ignore @SerializedName ("images") var images: List ? j'obtiendrai l'erreur


Veuillez ensuite modifier le code de votre question car il n'est plus valide pour le moment. Et je vais laisser tomber ma non-réponse ^^



2
votes

@Ignore dans les classes Kotlin nécessite la valeur de paramètre par défaut et Annotation @JvmOverloads :

data class Tapligh  @JvmOverloads constructor(
    ...

    @Ignore
    @SerializedName("images") var images: List<String>? = null
)


0 commentaires