Хранение сериализуемого объекта в файл с некоторыми исключенными данными - PullRequest
6 голосов
/ 18 февраля 2011

У меня есть объект, который позволяет мне сохранить BufferedImage в моем объектном файле.В том же объекте у меня есть переменная BufferedImage, которую я использую для кэширования изображения после его первой загрузки из массива необработанных данных.Все отлично работает, когда я создаю объект и сохраняю его в файл, так как BufferedImage имеет значение null.Проблема возникает, когда я обновляю загруженный объект, и переменная инициализируется, и я хочу сохранить объект после его обновления.

Есть ли возможность сохранить сериализуемый объект в файл, за исключением некоторых переменных?Или, может быть, я могу как-то сбросить переменную BufferedImage при сохранении в файл?

Заранее спасибо, Сергей.

Ответы [ 2 ]

15 голосов
/ 18 февраля 2011

Вы должны пометить атрибут, который вы не хотите сериализовать, как переходный:

private transient BufferedImage image;
4 голосов
/ 18 февраля 2011

Переменные могут быть помечены как transient.Если переменная помечена как кратковременная, она не будет сериализована при сериализации вашего объекта.

Также при извлечении объекта из сохраненного состояния переменная transient будет иметь нулевое значение.Поэтому вам нужно убедиться, что вы повторно инициализируете переменную, прежде чем ее использовать.

...