![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Lakie |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 4.2.2008 Репутация: нет Всего: нет |
Доброго времени суток всем!
У меня возникла такая проблема: есть класс, который должен проводить сериализацию и десериализацию объекта. Как можно сделать так, чтоб в случае передачи несериализуемого обьекта в этот класс не генерировал NotSerializableException, а корректно самостоятельно сериализовывал этот обьект. ![]() |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
через рефлексию можно сделать. только не знаю, насколько это оптимально...
иы собираешься писать универсальный класс сериализатор? если нет - то не проще ли сделать-таки класс, реализующий Serializeable? |
|||
|
||||
alex_nevolin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 13.8.2007 Репутация: 3 Всего: 4 |
||||
|
||||
Lakie |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 4.2.2008 Репутация: нет Всего: нет |
спасибо, щас посмотрю
вообще-то я какраз и собираюсь сделать универсальный класс для сериализации ![]() |
|||
|
||||
Lakie |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 4.2.2008 Репутация: нет Всего: нет |
alex_nevolin, спасибо, статья хорошая, но не то, мне надо, чтоб можно было обойтись без Serializable и Externalizable, я ведь не знаю, наследует ли объект эти интерфейсы
skyboy, я может неправильно понял, но в рефликсия не подходит.... если я ошибаюсь, обьясните новичку, как этим пользоваться ![]() Это сообщение отредактировал(а) Lakie - 4.2.2008, 17:55 |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
Lakie, имплементация интерфейса Serializable - это всего лишь метка, ярлык, которым разработчики классов указывают, что класс можно сериализовать стандартным способом. Некоторые разновидности классов в принципе сериализовать нельзя, потому что их содержимое динамически меняется или это бесмысленно. Например, java.sql.ResultSet или классы, описывающие сетевые соединения.
|
|||
|
||||
Lakie |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 4.2.2008 Репутация: нет Всего: нет |
так что мне делать? мне необходимо, чтоб обьект превращелся в массив байтов, при этом неизвесно, сериализуем он или нет |
|||
|
||||
alex_nevolin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 13.8.2007 Репутация: 3 Всего: 4 |
Lakie
Как вы сериализуете java.sql.ResultSet? Вам же говорят что есть классы, сериализация которых очень сложна или невозможна без знаний внутренней реализации класса. Т.е. написать фреймворк который сереализует что угодно на мой взгляд нельзя. |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
я бы сказал - бессмысленна. Можно вручную сериализовать сокетное соединение, превратить его в массив байт и сохранить на диске, или переслать на другой компьютер. Потом восстановить из массива обьект сокетного соединения. Но этот обьект не будет представлять собой работающее соединение. Это введение в заблуждение потребителей сериализованных обьектов. Lakie - ваше задание имеет смысл только в ситуации, когда вы хотите сериализовать заведомо "сериализуемые" обьекты, разработчики которых просто "забыли" поставить на них "штампик" Serializable , т.е. как исправление упущений авторов классов. Если же разработчик класса сознательно не указал , что его класс можно сериализовать, т.е. класс бессмысленно сериализовать, то ничего хорошего из сериализации не выйдет. Если вы не имеете возможности обсуждать постановку задачи, то вам наверное надо делать свой сериализатор, который делает все то же, что и стандартный, за исключением проверки наличия "штампика" Serializable. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |