Avatar ·

Para que serve a palavra-chave transient em campos no Java?

Olá a todos! Comecei a estudar Java e me deparei com a palavra-chave `transient` ao declarar campos de classe. Li a documentação, mas não entendi completamente para que ela serve e em quais casos devo usá-la. Eu tenho uma classe `User`: ```java import java.io.Serializable; public class User implements Serializable { private String username; private String password; private int age; } ``` Eu sei que `Serializable` permite salvar objetos em arquivo ou transmiti-los pela rede através do mecanismo de serialização. Mas por que marcar um campo como `transient`? Se eu quero que um campo não seja serializado, por que simplesmente não torná-lo `static` ou removê-lo da classe? Especialmente me confunde o exemplo com a senha. Suponha que eu não queira salvar a senha em um arquivo. Se eu declarar o campo `passwo