При переходе с Java 8 на Java 11 возникли проблемы с деСериализацией

0
05 мар 2019 05:06
В рабочей программе (Java 8) выполняется сериализация HashMap. Далее устанавливаю (Java 11) , при выполнении деСериализации выбрасывает исключение

ex2 = (java.io.InvalidClassException) java.io.InvalidClassException: javax.swing.event.EventListenerList; local class incompatible: stream classdesc serialVersionUID = -5677132037850737084, local class serialVersionUID = -7977902244297240866


Ответов: 1

0
05 мар 2019 05:53
это подводный камень сериализации - там всё проходит на очень низком уровне и многие, даже незначительные, изменения могут привести к тому, что вместо твоих данных ты получишь какую-то хрень. поэтому вставили эту serialVersionUID, чтоб вместо хрени ты получил исключение, говорящее, что ты получил хрень вместо данных.

будь осторожен с сериализацией - если на двух концах разные версии классов, то сериализация не сработает.
а лучше переходи на сериализацию через XML или JSON.
Модераторы: Нет
Сейчас эту тему просматривают: Нет