如何在运行时为Java类生成类似serialVersionUID的id?

时间:2016-10-10 20:43:57

标签: java serialization

我想通过检查其字段名称,类型以及在序列化和反序列化过程中发挥作用的类的所有其他组件来生成给定Java类的Id,而不一定是Java序列化,因为它可能是Json,等

除非字段类型或类的其他组件发生更改,否则id生成应该是可重复且确定的。我想我可以递归遍历这个类并生成类似的东西,但我不想这样做,除非没有别的办法。

我读到Java如果没有声明,则应用复杂的过程来确定serialVersionUID。它考虑了类成员,它的超级接口等。它看起来很相似,但我也想为 非Serializable 类生成id。

我的用例是我将Java对象存储在外部数据存储区中,并且我希望将此运行时生成的id合并到密钥中,以便优雅地处理非向后兼容的更改。

1 个答案:

答案 0 :(得分:0)

通过ObjectStreamClass.forName(String) .getSerialVersionUID(),您可以准确了解该字段的serialVersionUID是否存在。