从我的在线阅读中,为班级创建一个序列版本ID似乎是一种很好的做法。应用程序中的每个Java类是否需要具有不同的唯一序列版本ID?
我的问题是,在一个应用程序中,我必须为每个类创建一个唯一的ID吗?
或者我可以简单地将以下ID分配给我的应用程序中的每个类?
private static final long serialVersionUID = 1;
从我的在线阅读中,为班级创建一个序列版本ID似乎是一种很好的做法。应用程序中的每个Java类是否需要具有不同的唯一序列版本ID?
我的问题是,在一个应用程序中,我必须为每个类创建一个唯一的ID吗?
或者我可以简单地将以下ID分配给我的应用程序中的每个类?
private static final long serialVersionUID = 1;
Serializable
没有,也无所谓什么ID是特定阶级 - 这是该类序列化格式版本。类名称本身仍然是序列化的,所以它不像是在所有类中都是唯一的。 (当然,可能会在找到其他方式,让每个类别拥有不同的版本号码,我想不出任何副手,但这是另一回事。)
使用一个常量值是好的 - 但你做需要确保你改变它,当你真正改变序列化格式(例如通过添加一个字段)。
你要知道,我宁愿使用像Protocol Buffers这是相当具有向后/向前兼容性:)
乔恩,非常感谢您的意见! – curious1
迈克尔,非常感谢! – curious1