Dan*_*ali 5 android parcelable gson
我正在尝试使用Gson实现parcelable接口.我们的想法是创建一个json字符串(使用gson)并将其写入parcel对象.
这可能是实现界面的正确方法吗?
我遇到的唯一问题是当我反序列化对象时.实际上,我使用gson重新创建对象.
private MyClass(Parcel in) {
String json = in.readString();
Gson gson = new Gson();
gson.fromJson(json, getClass());
}
Run Code Online (Sandbox Code Playgroud)
问题是该fromJson函数返回一个对象,该对象是构造函数应该创建的对象.最后一行代码应该是这样的
this=gson.fromJson(json, getClass());
Run Code Online (Sandbox Code Playgroud)
那么,如果这是一种正确的实施方式Parcelable,我该如何解决这个问题呢?
您应该更仔细地阅读Parcelable javadoc。它包含您需要的一切。
正如文档中引用的:
其实例可以写入 Parcel 或从 Parcel 恢复的类的接口。实现 Parcelable 接口的类还必须有一个名为 CREATOR 的静态字段,它是实现 Parcelable.Creator 接口的对象。
因此,您应该writeToParcel声明该方法,并使用创建器从 Parcel 生成类的实例。
私有构造函数是一个附加的帮助器,您可以使用它来设置给定地块的对象的字段值,但不能设置对象本身。在Java中,this是一个正确的值,并且不能被赋值。
顺便说一句,包裹化的目标是提供短期快速序列化过程。一般来说,当您使用分割时,您应该使用快速且紧凑的数据格式。JSON 不是首选,但它会起作用。