Avatar ·

¿Por qué en Java se necesita la palabra clave transient para los campos?

¡Hola a todos! Empecé a estudiar Java y me topé con la palabra clave `transient` al declarar campos de una clase. Leí la documentación, pero no terminé de entender para qué sirve y en qué casos aplicarla. Tengo una clase `User`: ```java import java.io.Serializable; public class User implements Serializable { private String username; private String password; private int age; } ``` Sé que `Serializable` permite guardar objetos en un archivo o transmitirlos por red mediante el mecanismo de serialización. Pero, ¿para qué marcar un campo como `transient`? Si quiero que un campo no se serialice, ¿por qué no simplemente hacerlo `static` o eliminarlo de la clase? Me confunde especialmente el ejemplo de la contraseña. Supongamos que no quiero guardar la contraseña en un archivo. Si declaro el campo `password` como `transient`, al restaurar el objeto desde el archivo será `null`. Pero entonces, ¿cómo lo lleno después? ¡Esto viola la integridad de los datos! Intenté escribir un código simple: ```java