@somagic

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

необходимо написать свой сериализатор/десериализатор для своего объекта на Java, не используя существующие методы сериализации в Java и библиотеки. Не понимаю в каком направлении двигаться
  • Вопрос задан
  • 156 просмотров
Пригласить эксперта
Ответы на вопрос 3
xez
@xez
TL Junior Roo
Начните гуглить, для начала
Ответ написан
vabka
@vabka
Токсичный шарпист
Берёшь reflection API и поехал, пока не столкнёшься с проблемами
Ответ написан
Комментировать
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 которая это делает в более автоматическом режиме.
Но я так понимаю что автор очень хотел сам вручную поразвлекаться.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы