2017-01-17 8 views
0

Привет, у меня один вопрос о SerialVersionUID на Java. Если я генерировать SerialVersionUID для class A, 2 экземпляра A имеют тот же SerialVersion о классе и другой уникальный серийный для объекта, другое о object1 и object2? Или как? Не понимаю, пожалуйста, ответьте мне. Благодарю.SerialVersion UID Java - Как работает SerialVersionUID?

+2

SerialVersionUID является статическим полем, поэтому он «принадлежит» к классу, а не к какому-либо из экземпляров. – Robert

ответ

1

SerialVersionUID - это способ идентификации версии класса. Таким образом, все объекты одного класса будут иметь один и тот же SerialVersionUID. Однако, если вы вносите изменения в класс, рекомендуется изменить SerialVersionUID. И тогда в случае несовместимости сериализация объекта завершится неудачно.

См: What is a serialVersionUID and why should I use it?

0
  1. serialVersionUID используется для контроля версий объекта.

  2. Если мы не определим serialVersionUID в классе, и любая модификация производится в классе, то мы не сможем десериализовать наш класс, потому что serialVersionUID генерируется Java компилятор для модифицированного класса будет отличаться от старого сериализованного объекта и процесса десериализации будет в конечном итоге бросал java.io.InvalidClassException

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

serialVersionUID object1 и object2?

Это будет таким же, как серийный вариант UID является статическим (т.е. уровня класса)

 Смежные вопросы

  • Нет связанных вопросов^_^