![]() |
|
Модераторы: javastic, AntonSaburov |
![]()
|
|
| Brodyaga |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Всем доброго времени суток! Можно ли каким-нибудь образом записать объект в rms? Или как получить набор байт объекта?
|
|||
|
||||
| ecologist |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 452 Регистрация: 28.2.2007 Репутация: нет Всего: 9 |
||||
|
||||
| Dummy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 7 Всего: 19 |
Да, можно так Еще есть такая библиотечка. Не пробовал, но, судя по API, который она дает, - то, что доктор прописал. Или можно еще портировать ObjectOutputStream из исходников Java SE, но там много и, пожалуй, чересчур сложно для небольшой задачи. Замечательный API дает Polish: J2ME polish serialization, но, прежде чем привязываться к Polish ради одной только сериализации, стоит сто раз подумать, тем более если создаваемое приложение коммерческое... |
|||
|
||||
| Brodyaga |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
В этой статье показан пример с записью строки в rms... А как объект то записать? Мне свой класс нужно записать в rms... |
|||
|
||||
| Dummy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 7 Всего: 19 |
||||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Но класс же все равно надо сериализовать - сделать его Serializable может и хватит
|
|||
|
||||
| Brodyaga |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Нет
А так совсем и нельз получается? Просто это самый лёгкий способ, вот и хотел узнать, может действительно както так и можно исхитрица? или всётаки я прав по поводу того, что этот вариант только для строк подходит? Добавлено через 3 минуты и 13 секунд
в J2ME нет Serializable класса... так что буду смотреть вариант Dummy... |
||||
|
|||||
| Brodyaga |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Чтото я не понял в этом примере...
...каким макаром запись объекта получается...
Поясните плиз, Нафига имя класса записывается, а потом опять же этот метод вызывается... Поясните плиз? |
||||
|
|||||
| Dummy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 7 Всего: 19 |
На самом деле так, как описано в статье на http://developers.sun.com/mobility/midp/articles/persist/, делать можно для любого типа. Вопрос в том, нужно ли. К сожалению, в этой статье задача показана только на простейшем и не слишком полезном примере, когда тип объекта - String. К чему приведет попытка расширения такого решения:
ИМХО, такой дизайн нехорош, гораздо лучше доверить объекту самому представлять себе в виде последовательности байт. Как это сделать - я уже говорил . |
|||
|
||||
| Brodyaga |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Значит так нельзя?
Нужно только каждое свойство класс отдельно записывать? |
||||
|
|||||
| Dummy |
|
||||||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 7 Всего: 19 |
Имя класса пишется для того, чтобы можно было по нему потом создать инстанс класса. А в остальном - пожалуй, несколько странный там дизайн написан, я что-то проглядел
Соответственно, мы создаем определяем интерфейс Serializable следующим образом:
и твой объект:
Добавлено @ 14:35
writeUTF() только строки принимает. Добавлено @ 14:40 Да, и еще...
Это я точно погорячился))) Заглянул в исходники - там работа через Reflection идет, так что в J2ME это точно не получится. Вариант отпадает. Это сообщение отредактировал(а) Dummy - 30.10.2008, 14:41 |
||||||||||||||
|
|||||||||||||||
| Brodyaga |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
ну это всё архитектура.. общий принцип таков: нужно получить байты значений свойств класса, слепить их, и закинуть в rms, а потом также последовательно считать, создать новый объект и закинуть их туда. Так?
|
|||
|
||||
| Dummy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 7 Всего: 19 |
Да
|
|||
|
||||
| MoZy |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 4.6.2006 Репутация: нет Всего: 0 |
Но ведь какой бы сложности/вложенности классы ни были, базовых типов немного.. реализовать для каждого такого типа функцию дампа.. а в конечном классе (и всех вложенных), в Основной процедуре дампа, составить нужную сиквенцию вызовов для каждой значимой переменной. Читать так же..
Где сложность? непонятно Это сообщение отредактировал(а) MoZy - 30.11.2008, 23:24 --------------------
Experimentia est optima rerum magistra |
|||
|
||||
| Dummy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 7 Всего: 19 |
Прошу прощения, не понял, к чему это было написано и какую новую информацию содержит. |
|||
|
||||
![]()
|
FAQ раздела лежит здесь! |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |