Сериализация / десериализация общих экземпляров org. apache .commons.lang3.mutable.MutableDouble с Jackson 2.x - PullRequest
0 голосов
/ 05 августа 2020

У меня есть класс, содержащий экземпляр org.apache.commons.lang3.mutable.MutableDouble. Некоторые экземпляры MutableDouble используются совместно с экземплярами класса, которые мне нужно поддерживать при сериализации / десериализации с помощью Jackson 2.x (я использую его для создания глубокой копии List<MyClass>.)

Я пробовал использовать такие миксины:

@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
static abstract class MutableDoubleMixin { }

и в другом методе:

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.addMixIn(MutableDouble.class, MutableDoubleMixin.class);

String jsonString = objectMapper.writeValueAsString(myObject);

(я не показываю десериализацию, поскольку здесь она уже пошла не так)

Результатом будет jsonString, в котором просто номер для поля MutableDouble (не объект), а @id нигде нет. Все сериализуется и десериализуется без ошибок, но результат неверен, потому что общие экземпляры больше не используются.

Что я делаю не так?

...