Привет, у меня один вопрос о SerialVersionUID
на Java. Если я генерировать SerialVersionUID
для class A
, 2 экземпляра A
имеют тот же SerialVersion
о классе и другой уникальный серийный для объекта, другое о object1
и object2
? Или как? Не понимаю, пожалуйста, ответьте мне. Благодарю.SerialVersion UID Java - Как работает SerialVersionUID?
ответ
SerialVersionUID - это способ идентификации версии класса. Таким образом, все объекты одного класса будут иметь один и тот же SerialVersionUID. Однако, если вы вносите изменения в класс, рекомендуется изменить SerialVersionUID. И тогда в случае несовместимости сериализация объекта завершится неудачно.
-
serialVersionUID используется для контроля версий объекта.
Если мы не определим serialVersionUID в классе, и любая модификация производится в классе, то мы не сможем десериализовать наш класс, потому что serialVersionUID генерируется Java компилятор для модифицированного класса будет отличаться от старого сериализованного объекта и процесса десериализации будет в конечном итоге бросал java.io.InvalidClassException
- сериализации во время выполнения ассоциированных с каждым классом сериализуемой номером версии, называемым serialVersionUID, который используется во время десериализации до убедитесь, что отправитель и получатель сериализованного объекта имеют классы для этого объекта, которые являются , совместимыми с сериализацией.
serialVersionUID object1 и object2?
Это будет таким же, как серийный вариант UID является статическим (т.е. уровня класса)
SerialVersionUID является статическим полем, поэтому он «принадлежит» к классу, а не к какому-либо из экземпляров. – Robert