![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| leniviy |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: нет Всего: 5 |
Привет. Есть некий библиотечный класс "A", который плохо восстанавливается после сериализации (в нём неправильно использованы transient поля).
Мне бы сделать так, чтобы ObjectOutputStream после "A" ещё дописывал кое-какую инфу. Чтобы обойти это, я хочу переопределить ObjectOutputStream.replaceObject(Object) и ObjectInputStream.resolveObject(Object) , обернуть "A" в "B". Проблема в том, что у класса "A" могут быть наследники, и я не знаю, как восстановить наследника со всеми его полями. Дело в том, что как только я заменил "A" на "B", ObjectOutputStream не будет пытаться сериализовать "A", то есть такой класс :
будет серилизован как: $1=B{a=$1} а не $1=B{a=($2=A{}) } Мне кажется, я не должен в replaceObject() заменять "A" на "B", а вместо этого переопределить какой-то другой метод, но не знаю, какой. Вот рабочий пример
Здесь мне мешают жить вот эти 4 строчки:
Я хочу, чтобы вызовов writeObject() и readObject() было достаточно Это сообщение отредактировал(а) leniviy - 7.2.2012, 13:28 |
||||||
|
|||||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |