Sarà l'aggiunta di un cambio di metodo java-calcolato serialVersionUid sulla mia classe?
-
14-09-2019 - |
Domanda
Se ho una classe come questa:
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;
}
}
Verrà calcolato serialVersionUID cambiare se posso aggiungere un altro metodo (e non altri campi)?
Per esempio, aggiungendo il metodo:
public String getFullName() {
return firstName + " " + lastName;
}
In alternativa, c'è un bel strumento per capire tutto questo?
Soluzione
Sì, cambierà il serialVersionUID
.
È possibile utilizzare il serialver
strumento a riga di comando, almeno in Sun JDK per calcolare il serialVersionUID
per una data classe compilata.
Altri suggerimenti
Sì, cambierà. Un modo semplice è Eclipse: Se la classe implementa Serializable e non forniscono un campo serialVersionUID, l'IDE visualizza un simbolo di avvertimento. È possibile fare clic sul segno di avvertimento e selezionare "Aggiungi generato la versione di serie UID". Questo calcolerà un serialVersionUID per voi e inserirlo nel codice.
Quando ho iniziato a testare i miei fagioli mi sembrava che la serialVersionUID è stato rigenerato quando la classe era compilato , non solo quando la sua firma è cambiato. La ragione di ciò potrebbe essere la costruzione Maven e il fatto che la vecchia classe è stata eliminata prima che la nuova build.