Как Java десериализует объект, класс которого не находится на пути к классам, но чей суперкласс? - PullRequest
0 голосов
/ 14 апреля 2011

Скажем, у меня есть класс Foo, расширяющий Bar. Я создаю экземпляр Foo и сериализую его в файл.

Какой-то другой код читает этот файл и пытается воссоздать содержащиеся в нем экземпляры. Класс Bar виден этому коду, но не класс Foo.

Как он может десериализоваться обратно в экземпляр Bar? Включены ли метаданные иерархии классов в сериализованный вывод?

Ответы [ 2 ]

4 голосов
/ 14 апреля 2011

Он просто не может десериализовать это.Класс должен присутствовать в пути к классу.

0 голосов
/ 14 апреля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...