2017-08-16 2 views
1

lors de l'utilisation de Gson a été créé par POJO pour analyser/sérialiser le résultat de données json du service distant. Il peut avoir une certaine l'annotation Gsonle POJO utilisé pour Gson réutilisé pour la classe utilisée avec la pièce

public class User { 
    @SerializedName(“_id”) 
    @Expose 
    public String id; 
    @SerializedName(“_name”) 
    @Expose 
    public String name; 
    @SerializedName(“_lastName”) 
    @Expose 
    public String lastName; 

    @SerializedName(“_age”) 
    @Expose 
    public Integer age; 

}

mais pour la classe en utilisant avec la chambre, il peut avoir sa propre annotation:

import android.arch.persistence.room.Entity; 
import android.arch.persistence.room.PrimaryKey; 

@Entity 
public class User { 
    public @PrimaryKey String id; 
    public String name; 
    public String lastName; 
    public int age; 
} 

pourrait ces deux être combinés en un seul avec tous l'annotation de deux libs (s'il y a un conflit d'annotation (pas d'espoir), il faudrait le résoudre avec des noms de paquets longs)?

+0

Je ne m'attendrais pas à ce que les annotations de la bibliothèque interférent avec les annotations de l'autre bibliothèque. – CommonsWare

+0

Je ne pense pas que vous aurez des problèmes avec cela. Chaque framework gère ses propres classes d'annotation et traite les métadonnées à l'intérieur. –

+0

Je ne m'attends pas à ce qu'ils se heurtent. As-tu essayé? –

Répondre

1

Cela fonctionnera mais peut entraîner des problèmes dans le futur et n'est donc pas recommandé pour une conception de logiciel propre. Voir ce discours à ce sujet: Marko Miloš: Clean architecture on Android

Comme indiqué, vous devez utiliser différentes entités pour votre DB et webresults/JSON et de les transformer entre eux.

+0

Que recommande-t-il exactement? Devrions-nous dupliquer la classe pojo? – user6650650