Подход к сериализации класса модели облачной конечной точки для файловой системы Android
Я успешно создал модель конечной точки облака, которая позволяет легко получать информацию из App Engine. Чтобы уменьшить количество обращений и ускорить работу пользователей, я выделил один экземпляр, который хочу сохранить в локальном хранилище.
В остальной части моего приложения я использую ObjectInputStream для чтения и записи таких объектов, как:
FileInputStream fis = context.openFileInput("PRIVFILE");
ObjectInputStream ois = new ObjectInputStream(fis);
AppModelState s = (AppModelState) ois.readObject();
Это очевидно требует, чтобы все члены данных реализовали интерфейс Serializable. Класс Model расширяет GenericJSON и не является "Сериализуемым", так как
public final class ModelClass extends GenericJson {}
Я мог бы вручную создать сериализуемый объект, который сопоставляется с моделью; однако, это кажется очень любительским из-за количества признаков.
Другой альтернативой, которую я рассмотрел, было создание обертки Serializable Object, которая просто имеет строку JSON в качестве члена и предоставляет установщик / получатель, принимающий ModelClass в качестве параметров, таких как:
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
}
.....
}
Я чувствую, что должен быть лучший путь, и это должно было быть решено дюжину раз, но я не нахожу никаких ресурсов. Пожалуйста, предоставьте информацию.