Сохраните объект без использования сериализуемого

Насколько я понимаю, объект, который сохраняется с помощью сериализуемого, сохраняет значения объектов в классе, который создал исходный объект. Вот почему вы должны сделать объекты, которые нельзя сериализовать, временными.

Теперь объект, который я хочу сохранить, имеет ссылки на множество разных классов, и эти классы связаны с другими классами (я использую andEngine). Я пытался сделать класс, который делает объект сериализуемым, но после экспериментов я обнаружил, что мне нужно сделать сериализуемым гораздо больше классов. Затем все, что я не мог редактировать, что должно быть сериализуемым, я сделал временным. Я прочитал это Как сохранить сложный объект через Активность перезапускается? и надеялся, что это может быть альтернативой, но я предполагаю, что столкнусь с той же проблемой.

Есть ли другой способ сохранить фактический объект, а не объекты внутри объекта? Должен ли я проявлять настойчивость и продолжать использовать сериализуемые и переходные процессы в остальной части движка? Я неправильно понял, что делает сериализуемый?

Просто чтобы быть более точным в том, что я пытаюсь сделать. Я пытаюсь сохранить TMXTiledMap, созданный с помощью andEngine. Я делаю следующую сериализуемую, но, как указано выше, у меня возникают некоторые проблемы. http://code.google.com/p/andengine/source/browse/src/org/anddev/andengine/entity/layer/tiled/tmx/TMXTiledMap.java

Спасибо за помощь.


person rioneye    schedule 14.08.2011    source источник
comment
Имейте в виду, что изменения в задействованных классах могут сделать ваши сохраненные объекты бесполезными... также сериализация на Android может легко занять секунды для сохранения и загрузки, если у вас много классов. Возможно, вам следует подумать об определении собственного формата, содержащего только то, что вам нужно.   -  person mibollma    schedule 14.08.2011
comment
Я боялся этого. Было бы сложно перекодировать класс TMXTiledMap, поскольку я, честно говоря, не думаю, что смогу сделать это лучше, чем Николас. Наверное, я надеялся, что сохранение объектов будет безболезненным. Такова жизнь.   -  person rioneye    schedule 14.08.2011
comment
Может быть, вы могли бы уточнить, что он содержит и почему вам нужно его хранить в первую очередь.   -  person mibollma    schedule 14.08.2011
comment
Класс содержит методы, которые разбивают файл TMX, который по сути является файлом xml. Мне нужно сэкономить время при загрузке карты. Надеюсь, загрузка из файла будет быстрее, чем загрузка из xml.   -  person rioneye    schedule 14.08.2011
comment
Если вы ищете скорость, сериализация Java не подходит. Я не думаю, что это будет намного быстрее, чем xml. Вместо этого я бы посоветовал вам внимательно изучить формат xml и маршрутизацию загрузки и переписать его, например, с помощью MsgPack... это должно дать вам дополнительную скорость.   -  person mibollma    schedule 14.08.2011