添加方法会更改我的班级上的Java计算的串行ververionuid吗?
-
14-09-2019 - |
题
如果我有这样的课:
public class Name implements Serializable {
private final String firstName;
private final String lastName;
public Name(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
}
如果我添加另一种方法(没有其他字段),其计算出的serialversionuid会更改吗?
例如,添加该方法:
public String getFullName() {
return firstName + " " + lastName;
}
另外,还有一个很好的工具可以解决这个问题吗?
解决方案
是的,它将改变 serialVersionUID
.
您可以使用 serialver
命令行工具 - 至少在Sun的JDK中以计算 serialVersionUID
对于给定的编译课。
其他提示
是的,它将改变。 Eclipse是一种简单的方法:如果类实现序列化并且您不提供串行versionuid字段,则IDE将显示警告符号。您可以单击警告标志,然后选择“添加生成的串行版本UID”。这将为您计算一个串行Versionuid,并将其插入代码。
当我开始测试豆子时 编译, ,不仅当它的签名更改时。这样做的原因可能是Maven的构建,以及在新构建之前删除了旧类的事实。
不隶属于 StackOverflow