Задать вопрос
@somagic
ML engineer, Data Scientist, Java developer

Как написать свой сериализатор/десериализатор Java?

необходимо написать свой сериализатор/десериализатор для своего объекта на Java, не используя существующие методы сериализации в Java и библиотеки. Не понимаю в каком направлении двигаться
  • Вопрос задан
  • 185 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
Берёшь reflection API и поехал, пока не столкнёшься с проблемами
Ответ написан
Комментировать
xez
@xez
TL Junior Roo
Начните гуглить, для начала
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Я вот так делал. Работает быстрее чем стандартная сериализация. Но есть задача.
Ты сам должен реализовать сохранение всех полей класса во внешний файл
(ObjectOutput). Можно через операции над байтами.

Еще сложнее реализовать чтение. Т.к. нужно различать неинициализированные
состояния полей. Например у студанта есть дата рождения но имя еще не задано.
Тоесть надо придумать как в файл писать признак null для поля name.

public class Student implements Externalizable {
    
    private String name;
    private LocalDate birthday;

    @Override
    public void writeExternal(ObjectOutput out) throws IOException {
        // TODO:
    }

    @Override
    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
        // TODO:
    }
}


Есть коробочная библиотека Kryo которая это делает в более автоматическом режиме.
Но я так понимаю что автор очень хотел сам вручную поразвлекаться.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы