Spec-Zone .ru
спецификации, руководства, описания, API
|
Шоу, как использовать управление версиями в сериализации, чтобы развить класс, чтобы иметь новый суперкласс. Например, если начальная структура класса была следующие:
class A {...}; class C extends A {...};
и развитая структура класса следующие:
class A {...}; class B extends A {...}; class C extends B {...};
тогда новая версия подкласса C должна быть в состоянии считать старую версию подкласса C, и наоборот. Пример демонстрирует этот принцип.
Развитый classses (ASuperClass и ASubClass) должен определить поле serialVersionUID, которое получается, используя команду serialver на исходных классах (ASuperClass и ASubClass).
Отметьте, что в этом примере, суперклассы (A и B) реализуют интерфейс Serializable. Если бы они не сделали, разделяют C на подклассы, то было бы ответственно за сохранение и восстановление полей A и B. См. Сериализацию с Суперклассом NonSerializable для дополнительной информации об этой теме.