Ansatz zur Serialisierung der Cloud-Endpunktmodellklasse für das Android-Dateisystem

Ich habe erfolgreich ein Cloud-Endpunktmodell erstellt, mit dem Informationen aus App Engine einfach abgerufen werden können. Um die Roundtrips zu reduzieren und die Benutzererfahrung zu beschleunigen, habe ich eine Instanz identifiziert, die im lokalen Speicher gespeichert werden soll.

Im Rest meiner App verwende ich ObjectInputStream zum Lesen und Schreiben von Objekten wie:

FileInputStream fis = context.openFileInput("PRIVFILE");
ObjectInputStream ois = new ObjectInputStream(fis);
AppModelState s = (AppModelState) ois.readObject();

Dies erfordert natürlich, dass alle Datenmitglieder die Serializable-Schnittstelle implementieren. Die Model-Klasse erweitert GenericJSON und ist nicht wie folgt "serialisierbar"

    public final class ModelClass extends GenericJson {}

Ich könnte manuell ein serialisierbares Objekt erstellen, das dem Modell zugeordnet ist. Das scheint jedoch aufgrund der Anzahl der Attribute sehr amateurhaft zu sein.

Die andere Alternative, die ich in Betracht gezogen habe, war das Erstellen eines Wrappers für serialisierbare Objekte, der einfach die JSON-Zeichenfolge als Member enthält und einen Setter / Getter bereitstellt, der die ModelClass als Parameter akzeptiert, wie z.

class AppModelState implements Serializable {
   private String modelClassJSON;

   public ModelClass getModelClass() {
      // generate a new ModelClass from the JSON
   }

   public void setModelClass(ModelClass c) {
      // extract the JSON for storage
   }

   .....
}

Ich habe das Gefühl, dass es einen besseren Weg geben muss und dieser hätte ein Dutzend Mal gelöst werden müssen, aber ich finde keine Ressourcen. Bitte geben Sie Ihre Daten ein.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage