Как автоматически выполнить метод после десериализации?
У меня есть класс Foo
, it Serializable
. Он представляет собой графический объект, и я хочу, чтобы он возвращал свои дескрипторы в состояние перед сериализацией. Все данные хранятся внутри объекта, мне нужен только метод, который нужно вызвать в нужный момент. Как я могу это достичь? Возможно ли это на Java?
(У меня есть Foo
в объекте List
в Bar
, а в некоторых других местах - поэтому я не хочу делать это вручную.)
Ответы
Ответ 1
Классы, требующие специальной обработки во время процесса сериализации и десериализации, должны реализовывать специальные методы с этими точными сигнатурами:
private void readObject(java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException;
Внедрите этот метод и вызовите in.defaultReadObject()
, а затем выполните любую нужную логику.
Подробнее о документах java.io.Serializable