我正在创建一个 Java 应用程序,当创建一个与 ADT 一起使用的接口时,它发现需要将一个随机数初始化为 ID 号。
public class StackFullException extends RuntimeException {
private static final long serialVersionUID = 1L;
public StackFullException(){}
public StackFullException(String message) {
super(message);
}
}
我很好奇忽略这一点是否会影响我的程序的任何后果,如果是的话,如何避免它。
The serialVersionUID
是 Java 序列化 API 黑魔法的一部分。
它用于唯一标识类的版本,以便在反序列化类时可以根据类加载的类版本检查版本ClassLoader
.
序列化 API 将生成一个serialVersionUID
如果未指定,则为自身,但这会因无关紧要的更改(或至少不会破坏序列化兼容性的更改)而发生随机更改。
自己添加字段可以让您控制此过程 - 您可以决定何时对类进行更改应该破坏旧版本的反序列化。
更多信息可以在Java 文档用于Serializable http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html.
简而言之,如果您计划序列化此类,然后稍后对其进行反序列化 - 但在对代码进行一些更改并重新编译等之后 - 该字段对于保证其按预期工作或多或少是必不可少的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)