如果我更改Java Exception类扩展的基类,是否需要更新serialVersionUID值?

Dan*_*nov 3 java serialization exception serialversionuid

请考虑以下Java异常类:

public class BarException extends RuntimeException {
    // [...]
}

public class FooException extends BarException {
    private static final long serialVersionUID = -5322002268075295537L;

    // [...]
}
Run Code Online (Sandbox Code Playgroud)

如果我希望更新要删除的继承层次结构BarException,FooException直接从中派生RuntimeException,这是否需要更改serialVersionUID值?

// FooException with updated inheritance hierarchy
public class FooException extends RuntimeException {
    private static final long serialVersionUID = ???;

    // [...]
}
Run Code Online (Sandbox Code Playgroud)

Mic*_*rdt 5

是.根据序列化规范,"在层次结构中上下移动类"将导致与先前序列化实例不兼容.