¿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