Avatar ·

¿Qué es serialVersionUID y por qué declararlo en Java?

¡Hola a todos! Estoy escribiendo una pequeña aplicación en Java que guarda datos de usuarios en un archivo mediante serialización. Tengo una clase User con los campos name, age y email. Implementé Serializable, todo funcionaba perfectamente hasta que agregué un nuevo campo phone. Después de eso, al intentar deserializar archivos antiguos, obtuve una excepción: java.io.InvalidClassException: User; local class incompatible: stream classdesc serialVersionUID = 123456789, local class serialVersionUID = 987654321 Leí que es necesario declarar serialVersionUID, pero no entiendo completamente por qué es necesario y cómo usarlo correctamente. Aquí está mi clase: ```java import java.io.Serializable; public class User implements Serializable { private String name; private int age; private String email; // private String phone; // nuevo campo public User(String name, int age, String email) { this.name = name; this.age = age; this.email = email; } } ``` Díganme, ¿cómo