Arc*_*ald 5 java stack exception uid
我正在创建一个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)
我很好奇是否将其删除将影响我的程序的任何后果,如果是这样,如何避免它.
这serialVersionUID是Java序列化API的黑魔法的一部分.
它用于唯一标识类的一个版本,以便在对类进行反序列化时,可以根据加载的类的版本检查版本ClassLoader.
serialVersionUID如果没有指定序列化API,它将生成一个自身,但随后由于无关紧要的更改(或至少不破坏序列化兼容性)而随机更改.
自己添加字段可让您控制此过程 - 您可以决定何时对类进行更改会破坏旧版本的反序列化.
可以在JavaDocs中Serializable找到更多信息.
简而言之,如果您计划序列化此类,然后在以后对其进行反序列化 - 但在对代码进行一些更改并重新编译之后 - 这个字段或多或少必不可少,以确保它可以按预期工作.
| 归档时间: |
|
| 查看次数: |
2212 次 |
| 最近记录: |