gpt4 book ai didi

java标准序列化顺序

转载 作者:搜寻专家 更新时间:2023-10-31 08:10:59 24 4
gpt4 key购买 nike

我想知道以下示例类的属性将以何种顺序序列化:

public class Example implements Serializable {

private static final long serialVersionUID = 8845294179690379902L;

public int score;
public String name;
public Date eventDate;
}

编辑:

为什么我想知道这个:

我在我的一个类的文件中得到了一个序列化字符串,它没有实现读对象()或写对象()。现在实现改变了(一些属性消失了)我想编写一个 readObject() 方法来处理旧的序列化类。

我只会读取此属性,但不会将其保存到创建的对象中。

这基本上只是为了遗留我现在使用数据库但需要支持旧的序列化文件。

要编写此 readObject(),我需要流中属性的顺序。

最佳答案

基于对规范的简要阅读。

  • 字段按照字段描述符类描述符的顺序写入

  • 字段描述符按照“规范顺序”定义如下:

    "The descriptors for primitive typed fields are written first sorted by field name followed by descriptors for the object typed fields sorted by field name. The names are sorted using String.compareTo."


(我怀疑关于规范顺序的位应该无关紧要。序列化中字段的实际顺序应该可以从同一序列化中类描述符中字段描述符的实际顺序中恢复。我怀疑指定规范顺序的原因是它会影响计算的序列化 ID。但我很容易在这方面出错 :-) )


引用:

关于java标准序列化顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19948490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com