Qu'est-ce que serialVersionUID et pourquoi le spécifier en Java ?
Bonjour à tous ! J'écris une petite application en Java qui sauvegarde les données des utilisateurs dans un fichier via la sérialisation. J'ai une classe User avec les champs name, age et email. J'ai implémenté Serializable, tout fonctionnait parfaitement jusqu'à ce que j'ajoute un nouveau champ phone. Après cela, en essayant de désérialiser les anciens fichiers, j'ai obtenu l'exception :
java.io.InvalidClassException: User; local class incompatible: stream classdesc serialVersionUID = 123456789, local class serialVersionUID = 987654321
J'ai lu qu'il faut déclarer serialVersionUID, mais je ne comprends pas complètement pourquoi c'est nécessaire et comment l'utiliser correctement. Voici ma classe :
```java
import java.io.Serializable;
public class User implements Serializable {
private String name;
private int age;
private String email;
// private String phone; // nouveau champ
public User(String name, int age, String email) {
this.name = name;
this.age = age;
this.email = email;
}
}
```
Dites-moi comment