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