Java中的serialPersistentFields

Java中的serialPersistentFields,java,serialization,Java,Serialization,在Java中序列化类时,可以使用serialPersistentFields覆盖默认的Java序列化行为 假设我想序列化一个静态列表,然后我需要在ObjectStreamField对象数组中定义它 有人能帮我给出整个场景的实际实现吗 Java对象序列化规范中有一个使用serialPersistentFields的示例:。文本说明示例代码用于序列化和反序列化 我对代码的理解是,如果serialPersistentFields中的一个字段是该类的静态字段,那么它将包含在序列化中。然而,像这样的静态序

在Java中序列化类时,可以使用
serialPersistentFields
覆盖默认的Java序列化行为

假设我想序列化一个静态列表,然后我需要在
ObjectStreamField
对象数组中定义它


有人能帮我给出整个场景的实际实现吗

Java对象序列化规范中有一个使用
serialPersistentFields
的示例:。文本说明示例代码用于序列化和反序列化


我对代码的理解是,如果
serialPersistentFields
中的一个字段是该类的静态字段,那么它将包含在序列化中。然而,像这样的静态序列化是可疑的实践。问题在于理解使用序列化静态反序列化类时会发生什么。这将破坏目标类的现有静态,还是丢弃序列化静态?这两个都不是一个好的选择(通常)。

Java对象序列化规范中有一个例子:我已经阅读了该文档。我只想有一个例子,可以把这个概念用于序列化和反序列化。关于该文档的另一点,已经给出了方法,但是没有给出与Externalizable的区别。“对于Externalizable对象,容器只保存对象类的标识;类必须保存和恢复内容。”—换句话说,可外部化的
对象负责自己的序列化。规范接着说它必须如何做到这一点。是的。我已经在文档上看到了这个例子。但是,这个概念在任何java类中都有使用吗。如果提供了这种类型的功能,那么自定义序列化与默认序列化相比有什么优势呢?自定义序列化(通常)的优势是避免对特定字段进行序列化(这些字段本质上是不可序列化的…或不是必需的),以获得比默认字段更高效的串行表示形式,或在序列化或反序列化期间执行非标准操作;e、 在反序列化时将实例添加到查找表中。一些标准集合类执行自定义序列化和反序列化。看看源代码。