Apache Ignite: подстановка типов при сериализации - PullRequest
0 голосов
/ 02 мая 2019

У меня есть класс A, кеш A_CACHE и прокси-объект AProxy extends A.Моя цель - сериализовать AProxy объекты, как если бы они были A объектами (автоматически подставлять тип), и помещать их в A_CACHE.

. Есть ли способ в Apache Ignite заменить тип объекта, которыйЯ пытаюсь поместить в кеш (сериализовать с помощью BinarySerializer)?

То, что я пробовал до сих пор.Я реализовал и зарегистрировал один и тот же BinarySerializer для обоих типов.Я также попытался поиграть с классом BinaryNameMapper, чтобы получить одинаковое имя класса для обоих классов, но безуспешно.Единственный вариант, который мне приходит в голову сейчас - это использовать BinaryObjectBuilder.Это действительно единственный вариант для меня?

1 Ответ

0 голосов
/ 03 мая 2019

После небольшого исследования решение было найдено.AProxy должен реализовывать writeReplace метод интерфейса Serializable.Возврат проксированного экземпляра из этого метода.Если проксируемый класс равен Serializable или Externalizable и кто-то хочет применить пользовательскую сериализацию, то интерфейс прокси-класса должен быть реализован Binarylizable (пользовательские двоичные сериализаторы не применяются при использовании хака, описанного выше, но вместо этого OptimizedMarshaller используетсяиспользуемый).

...