Что такое serialVersionUID в java, обычно в классе исключений?

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

Я просматриваю код обработки исключений, и я увидел что-то, называемое serialVersionUID. Что это за uid? Ограничен ли он только исключением или может использоваться во всех классах??? в чем преимущество этого идентификатора?

+16
25 авг. '11 в 8:33
источник поделиться
3 ответа

serialVersionUID - это поле для определения версии определенного класса при сериализации и десериализации. рассмотрите сценарий, в котором у вас есть класс Employee, который имеет 3 поля, которые были в производстве в течение некоторого времени (что может быть много сериализованные версии объектов-сотрудников), когда вы обновляете класс для включения (скажем, 4-го поля), тогда весь предыдущий класс (который сериализован) не может быть отброшен или десериализован на новый, и вы получите исключение.

чтобы избежать этой проблемы, вы можете использовать поле serialVersionUID, чтобы сообщить JVM, что новый класс является infact другой версии (путем изменения serialVersionUID).

@Farmor и @Tom Jefferys сказали почти то же самое, но с примером вещи выглядят намного проще.

+21
25 авг. '11 в 8:45
источник

Он используется для сериализации, он должен быть объявлен в любом классе, который реализует Serializable.

Это фактически номер версии, которую JVM может использовать, чтобы проверить, соответствует ли сериализованный класс определению класса, которое вы пытаетесь десериализовать.

Там больше информации о нем: http://download.oracle.com/javase/1,5.0/docs/api/java/io/Serializable.html

+6
25 авг. '11 в 8:37
источник

Чтобы определить, имеют ли они сериализуемую и десериализуемую совместимость, если они имеют один и тот же serialVersionUID и оба реализуют Serializable, тогда они совместимы.

И это не ограничивается исключениями, поскольку вы заметите, что Eclipse склонен положить serialVersionUID в начале вашего обычного класса java, если он реализует Serializable.

Отредактировано: Обновлено, чтобы включить @Spychos правильный комментарий о интерфейсе Serializable.

+2
25 авг. '11 в 8:38
источник

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