添加方法会改变我的类中的java计算的serialVersionUid吗?

Pet*_*yle 4 java serialization serializable serialversionuid

如果我有这样的课程:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我添加另一个方法(并没有其他字段),它的计算的serialVersionUID会改变吗?

例如,添加方法:

public String getFullName() {
    return firstName + " " + lastName;
}
Run Code Online (Sandbox Code Playgroud)

或者,是否有一个很好的工具来解决这个问题?

Rob*_*anu 8

是的,它会改变serialVersionUID.

您可以使用serialver命令行工具 - 至少在Sun的JDK中为您计算serialVersionUID给定的编译类.