如何找到未指定 serialVersionUID 的类的默认值
类已经实现了 Serializable 接口,但是没有指定 'serialVersionUID',怎么找出这个默认的 'serialVersionUID'?
可以通过以下两种方法找到默认的 'serialVersionUID' 值:
- 使用 JDK 自带的 'serialver' 工具
在命令行中输入以下命令:
serialver <类名>
例如,如果要找到 java.lang.String 类的默认 'serialVersionUID' 值,可以输入以下命令:
serialver java.lang.String
执行命令后,将会输出该类的默认 'serialVersionUID' 值。
- 通过反编译工具查看类文件
使用反编译工具(如 'javap')查看该类的字节码文件,可以找到默认的 'serialVersionUID' 值。在类的字节码文件中,'serialVersionUID' 会以 'private static final long serialVersionUID = xxxL;' 的形式出现,其中 'xxxL' 就是默认的 'serialVersionUID' 值。
原文地址: https://www.cveoy.top/t/topic/lEPv 著作权归作者所有。请勿转载和采集!