Ответ 1
Если вы еще не модифицировали код, вы, вероятно, можете запустить инструмент serialver (часть JDK) и посмотреть, что он генерирует. Я верю, что вы получите то, что рассчитано seriVersionUID
.
У меня есть несколько сериализуемых классов, которые были скомпилированы без указания serialVersionUID. Теперь мне нужно добавить некоторые члены данных к этим классам, но вы хотите сохранить некоторые уже сериализованные объекты.
Есть ли в любом случае, чтобы узнать serialVersionUID этих сериализованных объектов, чтобы я мог указать один и тот же идентификатор в исходном коде?
Если вы еще не модифицировали код, вы, вероятно, можете запустить инструмент serialver (часть JDK) и посмотреть, что он генерирует. Я верю, что вы получите то, что рассчитано seriVersionUID
.
Что я обычно делаю, я компилирую код, пытаюсь запустить его, а поднятое исключение упоминает оскорбительный SVUID, поэтому я могу вырезать и вставить его в свой собственный код. Сырой, но он работает.
Если вы используете Eclipse, у него есть "быстрое исправление", чтобы сгенерировать рассчитанный serialVersionUID. Это, конечно, работает только в том случае, если у вас есть (точный) источник для классов во время сериализации объектов.
Если у вас есть хотя бы файлы классов для них, используйте инструмент командной строки "serialver" (поставляется с JDK).