否定serialVersionUID?

Sha*_*han 3 java serialization serialversionuid

我遇到了一个异常处理程序类,它扩展了异常,如下所示:

public class AppFileReaderException extends Exception {
    //Explicit serialization UID added 
    private static final long serialVersionUID = -2458461415998318236L;

    public AppFileReaderException(String msg) 
    {
        super(msg);
    }
Run Code Online (Sandbox Code Playgroud)

作者使用了显式序列化版本UID,并在其他类似的异常处理程序类中忽略了它.基于我从另一篇SO帖子中理解的内容,如果应用程序没有使用任何序列化和反序列化,我们可以忽略序列化UID.奇怪的是,作者使用了否定的UID.我很想知道这是有效还是推荐的做法.有没有其他理由使用负序列版本的VID?

Jon*_*eet 12

有没有其他理由使用负序列版本的VID?

如果你看到任何"随机查看"显式serialVersionUID,它可能是由IDE生成的,通常从UID开始,如果没有提供显式版本,则会生成UID.

序列化版本UID就像哈希码 - 值的大小实际上是无关紧要的; 除了区分价值之外,正面和负面都是毫无意义的.