java为什么在扩展RuntimeException时需要serialVersionUID?
扩展RuntimeException时为什么需要SerialVersionId?RuntimeException是可序列化的类吗
public class DataNotFoundException extends RuntimeException {
/**
*
*/
private static final long serialVersionUID = 1;
public DataNotFoundException(String str)
{
super(str);
}
}
# 1 楼答案
异常类或实现
Serializable
的任何类都需要有SerialUID
,以便在编译时序列化已执行的类,并且在重新编译时de-serialized
将执行与正在执行de-serialized
的序列化类版本相匹配的版本Serialisation
的实现有以下原因JavaTM
类读取由同一类的旧版本编写的流李>JavaTM
类写入要由同一类的较旧版本读取的流李>RMI
提供默认序列化李>RMI
可以使用序列化李># 2 楼答案
RuntimeException
扩展了Exception
Exception
扩展了{Throwable
实现{DataNotFoundException
也是Serializable