1. Ошибки сериализации.
Несериализуемое поле помечаем модификатором transient, и тем самым исключаем его из списка «сохраняемых».2. Некорректное восстановление состояния объекта при десериализации.
То, что мы сумели сохранить объект, исключив «неправильные поля» конечно хорошо, но при восстановлении этого объекта хотелось бы инициализировать эти (не сохраненные) поля. Вот тут то нужно вспомнить про документацию J2SE :) и про метод Object readResolve(). В общем случае, нужно объявить вышеуказанный метод, в его теле произвести действия, которые будет выполнятся после десериализации, и вернуть this.protected Object readResolve(){ //preparing object state after deserialization // ... return this; }
Более подробно про этот (и не только) метод можно прочитать вот здесь:
Комментариев нет:
Отправить комментарий