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

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

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

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

+33
источник поделиться
2 ответа

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

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

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

+34
источник

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

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

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

+12
источник

Связанные вопросы


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

Посмотрите другие вопросы по меткам или Задайте вопрос