Могат ли два класа да имат един и същ serialVersionUID?
Могат ли два класа да имат един и същ serialVersionUID?

Видео: Могат ли два класа да имат един и същ serialVersionUID?

Видео: Могат ли два класа да имат един и същ serialVersionUID?
Видео: 07 Входно-изходни потоци и файлове 2024, Ноември
Anonim

Да, възможно е две различен класовете могат да имат на същия serialVersionUID стойност. Но предпочитайте да използвате уникален за всеки клас . Също така използвайте 8 до 10 цифри по-дълги, а не само 1 като стойност.

Следователно, какво е serialVersionUID?

Просто казано, на serialVersionUID е уникален идентификатор за Serializable класове. Това се използва по време на десериализацията на обект, за да се гарантира, че зареденият клас е съвместим със сериализирания обект.

По същия начин, каква е ползата от serialVersionUID 1l? В serialVersionUID е универсален идентификатор на версия за Serializable клас. Десериализация използва това число, за да се гарантира, че зареден клас отговаря точно на сериализиран обект. Ако не бъде намерено съвпадение, тогава се хвърля InvalidClassException.

По същия начин се пита дали е необходим serialVersionUID?

по подразбиране serialVersionUID изчислението е силно чувствително към детайлите на класа, които могат да варират в зависимост от реализациите на компилатора и мога по този начин води до неочаквани InvalidClassException s по време на десериализация. Следователно трябва да декларирате serialVersionUID защото ни дава повече контрол.

Каква е ролята на serialVersionUID в процеса на сериализация?

По време на сериализация , java runtime свързва номер на версия с всеки може да се сериализира клас. Този номер се обади serialVersionUID , който се използва по време на десериализацията, за да се провери дали изпращачът и получателят на a сериализирани обект са заредили класове за този обект, които са съвместими по отношение на сериализация.

Препоръчано: