![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| pathfinder |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 3.3.2010 Репутация: 2 Всего: 10 |
Ну дык в каждом классе и реализовывать метод предложенный COVD-ом
|
|||
|
||||
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: нет Всего: 0 |
А что-то пахожее как в C++ в jave нету?
|
|||
|
||||
| pathfinder |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 3.3.2010 Репутация: 2 Всего: 10 |
Нету.
В паскале(практически так же как и в C) можно ссылку(указатель) на экземпляр структуры(класса) рассматривать как просто указатель на массив байтов размером со структуру(класс), и на этом оснавании не парится с сериализацией объектов(т.е. представлении их в виде непрерывной последовательности байт). В Java нету указателей(в том смысле что нельзя указатель рассматривать как ссылку на массив байтов), т.е. если есть скажем ссылка на объект object = new SomeObject(...), "размер" которого пусть будет равным 10 байтам, мы не можем написать что типа ((byte[]*)object)[5] и получить шестой байт, как это можно делать в языках поддерживающих указатели, а соответсвенно и прямую работу с памятью. Именно поэтому в Java приходится вручную сериализовывать объект. Это сообщение отредактировал(а) pathfinder - 21.5.2010, 11:36 |
|||
|
||||
| Ak47black |
|
||||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: нет Всего: 0 |
pathfinder, я попробовал запустить Ваш код, но вижу
вот тут
А если делаю что-то похожее например
то при пакете
получаю размер данных тут
Аш 817 байт, что явно нетак. Добавлено @ 20:06 Сами структуры
Добавлено @ 20:08 Возможно-ли с таким подходом получить 4 байта, где
? Это сообщение отредактировал(а) Ak47black - 21.5.2010, 20:09 |
||||||||||||||
|
|||||||||||||||
| pathfinder |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 3.3.2010 Репутация: 2 Всего: 10 |
Для MyOutputStream забыл указать что он реализует интерфейс OutputStream )
По поводу размера - при сериализации средствами ObjectOutputStream(да и любыми другими) в массив добовляются дополнительные данные, что-бы можно было произвести десериализацию(магический заголовок, размер, наименование класса и тп), конкретно какие именно дополнительные данные добовляются надо смотреть в спецификации(тока она от версии к версии JVM может менятся). |
|||
|
||||
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: нет Всего: 0 |
pathfinder,
ну в принципе понятно тогда. Вроде теперь понимаю, что тема "мутная". Ну незнаю, думаю тогда врятли у меня получится сделать так удачно как это можно сделать в C/C+.... |
|||
|
||||
| pathfinder |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 3.3.2010 Репутация: 2 Всего: 10 |
Если пропускная способность канал вещь не критичная то использование ObjectOutputStream/ObjectInputStream оправдано и достаточно просто. Протокол вообще пишется на 1-2-3.
Как пример.
|
|||
|
||||
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: нет Всего: 0 |
Эмм... я только просто немного нето пищу.
А так в принципе я узнал то что хотел. pathfinder, Спасибо Вам за помощь. |
|||
|
||||
![]()
|
| Правила форума "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. |