Получение уведомления о десериализации подкласса в этом классе - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь реализовать систему регистрации для объектов определенного типа c.

Я сохраняю их в WeakHashMap внутри метода stati c другого класса. Таким образом, я могу отслеживать их изменения, не влияя на то, когда они построены / деконструированы. Единственная проблема заключается в том, что эти объекты сериализуемы и ЧАСТО будут сериализованы / десериализованы.

Чтобы добавить больше деталей, рассматриваемый класс является подтипом класса, который определен внутри фреймворка. Подкласс сериализуется / десериализуется внутри этой структуры, поэтому у меня нет возможности изменить это поведение суперкласса (потому что этот код находится в структуре). По какой-то причине не нужно реализовывать десериализацию в подклассе, и она автоматически обрабатывается фреймворком.

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

Цель было бы как-то переопределить метод, который будет автоматически вызываться внутри ClassIWantToLog при десериализации, чтобы я мог передать этот новый объект в StaticToolsClass.

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

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