我已成功创建了一个云端终端模型,可以轻松地从App Engine检索信息。为了减少往返次数并提供更快的用户体验,我已确定一个实例希望存储到本地存储中。
在我的应用程序的其余部分,我正在使用ObjectInputStream读写对象,例如:
在我的应用程序的其余部分,我正在使用ObjectInputStream读写对象,例如:
FileInputStream fis = context.openFileInput("PRIVFILE");
ObjectInputStream ois = new ObjectInputStream(fis);
AppModelState s = (AppModelState) ois.readObject();
显然,这要求所有数据成员实现Serializable接口。Model类继承GenericJSON并不是“Serializable”,因此
public final class ModelClass extends GenericJson {}
我可以手动创建一个可序列化的对象来映射模型; 但是,由于属性数量很多,这似乎非常业余。
我考虑的另一种选择是创建一个Serializable Object包装器,该包装器仅具有JSON字符串作为成员,并提供接受ModelClass作为参数的setter/getter方法,例如:
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
}
.....
}
我感觉一定有更好的方法来解决这个问题,而且这个问题应该已经被解决了很多次,但是我没有找到任何相关资源。请提供意见。