Какой хороший способ представлять и хранить данные в Java's RecordStore?

Учитывая, что Java ME не допускает отражения и довольно урезан, какой подход к хранению данных в RecordStore может быть хорошим? Я думал о разработке класса адаптера синтаксиса, подобного JSON, который, вероятно, потребовал бы, чтобы каждый класс, значения которого должны храниться для реализации Hashtable +, вероятно, потребовал бы дополнительной библиотеки регулярных выражений, поскольку даже она была удалена.

Если вам интересно, зачем мне это нужно, это для задания. Таким образом, дилемма действительно стоит между написанием излишне большого фрагмента правильного кода в принципе или жестким кодированием всего, зная, что никто не должен страдать из-за обслуживания этого мусора в будущем. Но хороший принципиальный человек во мне склоняется к первому.

РЕДАКТИРОВАТЬ: Я должен был уточнить - я хотел бы хранить данные объекта в RecordStore, поэтому я пытаюсь разработать метод для представления объекта в виде строки, которую затем можно преобразовать в массив байтов.


person thezhaba    schedule 09.03.2010    source источник


Ответы (1)


Для каждого объекта, который вы хотите сохранить в RecordStore, сократите его до компонентных строк и примитивов, затем сериализуйте его в массив байтов, используя ByteArrayOutputStream, заключенный в DataOutputStream. Затем запишите этот массив байтов в RMS.

Поверните процесс в обратном порядке, используя ByteArrayInputStream, завернутый в DataInputStream, чтобы вернуть объект.

person funkybro    schedule 09.03.2010
comment
По сути, это то, что я действительно должен делать. Проблема в том, и причина, по которой я хотел высказать свое мнение по этому поводу, заключается в том, что я пытался придумать более автоматизированный способ сериализации объекта. Помимо жесткого кодирования имен каждой переменной и, следовательно, создания довольно жесткого дизайна, единственная другая идея, которую я придумал, - это сохранение всех данных объекта в Hashtable, которые затем можно сериализовать и десериализовать, когда придет время загрузить объект обратно. - person thezhaba; 09.03.2010
comment
Попробуйте J2ME Polish. Я считаю, что у них есть собственная версия интерфейса Serializable. Реализация этого автоматически создаст для вас код сериализации с использованием предварительной обработки. - person funkybro; 10.03.2010