Avatar ·

O que é serialVersionUID e por que especificá-lo em Java?

Olá a todos! Estou escrevendo uma pequena aplicação em Java que salva dados de usuários em um arquivo através de serialização. Eu tenho uma classe User com os campos name, age e email. Implementei Serializable, tudo funcionava perfeitamente, até que adicionei um novo campo phone. Depois disso, ao tentar desserializar os arquivos antigos, recebi uma exceção: java.io.InvalidClassException: User; local class incompatible: stream classdesc serialVersionUID = 123456789, local class serialVersionUID = 987654321 Li que é necessário declarar serialVersionUID, mas não entendo completamente por que isso é necessário e como usá-lo corretamente. Aqui está minha classe: ```java import java.io.Serializable; public class User implements Serializable { private String name; private int age; private String email; // private String phone; // novo campo public User(String name, int age, String email) { this.name = name; this.age = age; this.email = email; } } ``` Expliquem, por favor