Podejście do serializacji klasy modelu punktu końcowego chmury do systemu plików Android

Z powodzeniem stworzyłem model punktu końcowego chmury, który umożliwia łatwe pobieranie informacji z App Engine. Aby zmniejszyć liczbę podróży w obie strony i zapewnić szybszą obsługę użytkowników, zidentyfikowałem jedną instancję, którą chcę przechowywać w pamięci lokalnej.

W pozostałej części mojej aplikacji używam ObjectInputStream do odczytu i zapisu obiektów, takich jak:

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

To oczywiście wymaga od wszystkich członków danych implementacji interfejsu Serializable. Klasa Model rozszerza GenericJSON i nie jest „Serializowalna”, tak jak

    public final class ModelClass extends GenericJson {}

Mogłem ręcznie utworzyć obiekt podlegający serializacji, który odwzorowuje model; jednak wydaje się to bardzo amatorskie ze względu na liczbę atrybutów.

Inną alternatywą, którą rozważałem, było stworzenie wrappera Serializable Object, który po prostu ma łańcuch JSON jako element członkowski i dostarcza setter / getter akceptujący ModelClass jako parametry, takie jak:

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
   }

   .....
}

Czuję, że musi istnieć lepszy sposób, który powinien zostać rozwiązany kilkanaście razy, ale nie znajduję żadnych zasobów. Proszę podać dane wejściowe.

questionAnswers(2)

yourAnswerToTheQuestion