Когда класс реализует интерфейс Serializable, Java пытается сериализовать все его переменные-члены. Если класс любой переменной-члена не реализует Serializable, процесс сериализации упадёт с ошибкой NotSerializableException.
Представь класс ABC, который реализует Serializable, но содержит переменную-член типа XYZ, где XYZ не реализует Serializable. Это создаёт конфликт:
transientЕсли пометить проблемную переменную-член как transient, ты исключишь её из процесса сериализации:
class ABC implements Serializable {
transient XYZ nonSerializableMember;
// другие члены
}
Когда ты объявляешь поле как transient:
transient только для полей, которые не критичны для восстановления состояния объектаwriteObject и readObject)Когда поле помечено как transient, оно пропускается во время сериализации и восстанавливается в значение по умолчанию при десериализации.
Новый — ещё не проверен сообществом
Вы