考虑以下Java异常类:
public class BarException extends RuntimeException {
// [...]
}
public class FooException extends BarException {
private static final long serialVersionUID = -5322002268075295537L;
// [...]
}
如果我希望更新继承层次结构以删除
BarException
,以便FooException
直接从RuntimeException
派生,这是否需要更改serialVersionUID
值?// FooException with updated inheritance hierarchy
public class FooException extends RuntimeException {
private static final long serialVersionUID = ???;
// [...]
}
最佳答案
是。根据serialization spec,“将类移到层次结构的上层或下层”将导致与以前的序列化实例不兼容。