java - 如何在 Java 中以编程方式生成 serialVersionUID?

标签 java serialization serialversionuid

我正在开发一个生成 Java 文件的项目。我希望能够像使用 serialver 一样选择性地添加 serialVersionUID工具。

当我生成 Java 代码时有没有办法做到这一点,或者我是否需要要求该工具的用户手动提供 UID?明确地说,我不打算通过 Eclipse 或 serialver 工具自动执行此操作,而是通过 Java 本身执行此操作。

最佳答案

有一个版本的serialver工具源可用from OpenJDK .这一切都归结为这个电话:

ObjectStreamClass c = ObjectStreamClass.lookup(MyClass.class);
long serialID = c.getSerialVersionUID();
System.out.println(serialID);

至少在 JDK 6 中它返回与 serialver 工具相同的数字。

关于java - 如何在 Java 中以编程方式生成 serialVersionUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18294326/

相关文章:

java - 是什么导致了 java.lang.InternalError(它扩展了 VirtualMachineError)

java - 为什么我的链表中的数据不显示? java

java - 为什么 Hashtable 内部使用 Entry<?,?>?

java - Tomcat 5 和 Tomcat 7 的 ServletContext 中的不同资源评估

java - 我是否必须为此更改更新 serialVersionUID?

java - 在 Android 上序列化复杂对象 (Java)

c# - 我想将流反序列化为 Windows Phone 7 C# 中的联系人

serialization - 不要对用户角色 Symfony 使用序列化

java - 为什么依赖 ObjectStreamClass.getSerialVersionUID 不安全?

java - 从 Java 5 开始不再需要 serialVersionUID?