Список serialVersionUID в сериализованных данных - PullRequest
1 голос
/ 24 февраля 2009

У меня есть файл, который содержит сериализованные классы Java. Я хотел бы проанализировать этот файл, чтобы получить список классов в файле и serialVersionUID каждого класса.

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

Приветствия

Rich

Ответы [ 2 ]

2 голосов
/ 24 февраля 2009

Я не знаю, есть ли уже такой инструмент (если у вас есть доступ к самим классам, инструмент serialver может сообщить вам идентификатор), но если вам нужно свернуть свой собственный, Спецификация сериализации Sun должна содержать всю необходимую информацию, в частности, грамматику формата потока .

.
1 голос
/ 24 февраля 2009

К сожалению, не все классы (даже в JDK) подчиняются спецификации сериализации. В частности, readObject не всегда вызывает defaultReadObject или readFields, с эквивалентной ошибкой в ​​writeObject.

Вы можете определить, какие классы используются при десериализации. ObjectInputStream использует resolveClass и resolveProxyClass для сопоставления дескрипторов классов с действительными Class es (в некоторых подклассах используются разные правила поиска загрузчика классов).

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