Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何打包或序列化POJO类?_Java_Android_Serialization_Parcelable_Pojo - Fatal编程技术网

Java 如何打包或序列化POJO类?

Java 如何打包或序列化POJO类?,java,android,serialization,parcelable,pojo,Java,Android,Serialization,Parcelable,Pojo,我写了一个输出一组 提议 房间 溪流 网址 视频大小 由于我想在Android项目中使用解析后的数据,我遇到了一个问题:模型类不可打包,也不可序列化。后者可以通过java.io.Serializable实现。有没有一种方法可以实现Parcelable,而无需将所有字段复制到新模型中?您不需要新模型。您需要对每个需要序列化的模型进行序列化,以实现Parcelable,并将其自身写入parcel,以便对其进行序列化和反序列化。我假设您正在尝试跨活动/服务传递其中一种方法-在这种情况下,您需要能够

我写了一个输出一组

  • 提议
  • 房间
  • 溪流
  • 网址
  • 视频大小

由于我想在Android项目中使用解析后的数据,我遇到了一个问题:模型类不可打包,也不可序列化。后者可以通过
java.io.Serializable
实现。有没有一种方法可以实现
Parcelable
,而无需将所有字段复制到新模型中?

您不需要新模型。您需要对每个需要序列化的模型进行序列化,以实现Parcelable,并将其自身写入parcel,以便对其进行序列化和反序列化。我假设您正在尝试跨活动/服务传递其中一种方法-在这种情况下,您需要能够使用这两种方法之一序列化模型


如果您不想在活动/服务之间发送它们,我想知道为什么它们不可复制或序列化很重要。

您的假设是正确的-我想在活动/片段之间发送。但是您没有注意到模型来自Java库
Parcelable
来自Android世界。那你就有点倒霉了。之所以没有通用的方法来实现可打包的东西,是因为没有通用的方法来知道类中要携带哪些数据——只是一个对象所有字段的盲拷贝可能太多或不够。除非编写类,否则无法知道是否需要浅拷贝或深拷贝,或者是否不需要/不应该复制字段。您可以尝试扩展一个对象,如果子类具有足够的状态访问权限,则使其成为可包裹的,但如果没有某种类型的第二个类,您将无法通过。