Pregunta

Si tengo una clase como esta:

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;
    }
}

se calcula su serialVersionUID cambiar si añado otro método (y no hay campos adicionales)?

Por ejemplo, añadir el método:

public String getFullName() {
    return firstName + " " + lastName;
}

Por otra parte, no es una buena herramienta para calcular esto?

¿Fue útil?

Solución

Sí, va a cambiar la serialVersionUID.

Puede utilizar la herramienta de línea de comandos serialver - al menos en el JDK de Sun para calcular el serialVersionUID para una clase dada compilado

.

Otros consejos

Sí, va a cambiar. Una forma fácil es Eclipse: Si la clase implementa Serializable y que no proporcionan un campo serialVersionUID, el IDE muestra un símbolo de advertencia. Puede hacer clic en el signo de advertencia y seleccionar "Añadir generada versión UID serie". Esta calculará una serialVersionUID para usted y la inserta en el código.

Cuando empecé a probar mis judías me parecía que el serialVersionUID se regenera cuando la clase fue compilado , no sólo cuando su firma cambió. La razón de esto podría ser la acumulación experto y el hecho de que la clase de edad fue eliminada antes de la nueva construcción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top