为什么在扩展RuntimeException时我们需要serialVersionUID? RuntimeException是一个可序列化的类吗?
public class DataNotFoundException extends RuntimeException {
/**
*
*/
private static final long serialVersionUID = 1;
public DataNotFoundException(String str)
{
super(str);
}
}
答案 0 :(得分:4)
RuntimeException
延伸Exception
。 Exception
延伸Throwable
。 Throwable
实施Serializable
。因此DataNotFoundException
也是Serializable
答案 1 :(得分:3)
是的,Throwables是Serializable。 Serializable意味着该类的对象可以转换为字节序列。使序列化异常意味着它可以在分布式应用程序的层之间通过网络传输。
答案 2 :(得分:0)
异常类或实现Serializable
的任何类都需要具有SerialUID
,以便在编译时已序列化的类以及在重新编译时de-serialized
的类,JVM
会进行版本匹配,即版本为de-serialized
的序列化类的版本。
实施Serialisation
的原因如下。
JavaTM
类读取由同一类的旧版本编写的流。JavaTM
类编写旨在由同一类的较早版本读取的流。RMI
提供默认序列化。RMI
可以使用序列化。