Подтвердить что ты не робот

Что такое идентификатор серийной версии в Java?

Возможные дубликаты:
Почему я должен беспокоиться о serialVersionUID?
что такое идентификатор серийной версии?

Когда я создал новый класс, расширяющий java.util.logging.Level в Eclipse, он попросил меня добавить стандартный или сгенерированный идентификатор серийной версии. Я просто добавил слепо, не зная, что это такое и почему я должен добавить его.

Может ли кто-нибудь сказать мне, что это такое и почему это необходимо.

4b9b3361

Ответ 1

Идентификатор серийной версии используется при сериализации и десериализации объекта. Java распознает, соответствуют ли байты десериализованным версиям локального класса. Если это не будет сделано исключение.

Это важно при выполнении RMI или сохраняющихся структур объектов.

Здесь очень хорошее описание сериализации в javadoc Serializable.

Ответ 2

Это уникальный идентификатор для класса, используемый для сериализации.

Разумно объявить это, если вы сериализуете asap, потому что, если вы не объявляете его, то при смене класса он будет генерировать другой, который генерируется автоматически, и сериализация перестанет работать.

Хорошая ссылка здесь: http://c2.com/ppr/wiki/JavaIdioms/AlwaysDeclareSerialVersionUid.html