serialVersionUID缺少时,Eclipse会发出警告.
可序列化类Foo不声明long类型的静态最终serialVersionUID字段
serialVersionUID它是什么以及为什么重要?请显示缺失serialVersionUID会导致问题的示例.
重复什么是serialVersionUID,我为什么要使用它?
现在使用Eclipse进行一些java工作.我的班级名称用黄色下划线标出.我可以抑制警告或只添加frickin序列ID.
我不关心任何一种方式(或者我应该?),但这个序列号究竟是什么?
谢谢
我正在创建一个Java应用程序,当创建一个与ADT一起使用的接口时,它会发现需要将随机数初始化为ID号.
public class StackFullException extends RuntimeException {
private static final long serialVersionUID = 1L;
public StackFullException(){}
public StackFullException(String message) {
super(message);
}
}
Run Code Online (Sandbox Code Playgroud)
我很好奇是否将其删除将影响我的程序的任何后果,如果是这样,如何避免它.
我知道为什么我们需要提供一个串行UID(因此在反序列化期间,发送方和接收方具有相同的加载类).所以根据这个,如果我有多个具有相似UID的类,那么我是否正确假设反序列化会发生,但事情(我不知道是什么)之后会出错?或者是它会以某种方式抛出InvalidClassException?或者我在两个假设中完全离开了?
我想测试一下这个但又不确定它是否会起作用导致如果在反序列化过程中正确的类实际上被选中了?在那种情况下,一切都将是桃子的.