Java Transient: описание, использование и примеры кода
Ключевое слово transient в Java используется для пометки переменной экземпляра класса, которая не должна быть сериализована при сохранении состояния объекта в файле или передаче через сеть.
Когда объект сериализуется, все его переменные экземпляра также сериализуются, чтобы сохранить свои значения в сохраненном состоянии. При этом исключаются переменные, marked transient, которые могут содержать конфиденциальную информацию (например, пароли), не нужны для восстановления состояния объекта или могут иметь временное значение.
Рассмотрим следующую кодовую пример:
import java.io.Serializable;
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
private transient String password;
public Employee(int id, String name, String password) {
this.id = id;
this.name = name;
this.password = password;
}
//Other Code
}
В этом примере мы создали класс Employee, который реализует интерфейс Serializable. Переменные экземпляра id и name не помечены как transient, поэтому они будут сохранены при сериализации, а password является transient, поэтому его значение не будет сохранено.
Применение transient может ограничить возможности длительной работы с объектом после сериализации. Например, если мы защищаем поле пароля, закрывая его от сериализации, после десериализации объекта все поля будут пустыми, в том числе поля password.
Из-за специфических особенностей использования transient в Java следует использовать это ключевое слово только тогда, когда это действительно необходимо.