Джексон ObjectMapper: я хочу динамически изменять findPropertiesToIgnore объекта AnnotationIntrospector во время выполнения - PullRequest
0 голосов
/ 01 февраля 2020

Это использует Jackson 1.9.

У меня есть ObjectMapper, к которому я добавляю пользовательский AnnotationIntrospector для игнорирования свойств через findPropertiesToIgnore, и я хочу иметь возможность динамически изменять его во время выполнения .

В настоящее время я обновляю новые игнорируемые свойства в AnnotationIntrospector, но, похоже, что-то кешируется или что-то происходит.

В моем модульном тесте у меня

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setAnnotationIntrospector(myCustomAnnotationIntrospector); // No ignored properties yet

objectMapper.readValueAsString(someObjectToIgnorePropertiesOn); // this outputs all properties

myCustomAnnotationIntrospector.updateIgnoredProperties(); // update to ignore `someProperty`

objectMapper.readValueAsString(someObjectToIgnorePropertiesOn); // ! this still outputs `someProperty`

Но когда я закомментирую первый вызов readValueAsString(), второй вызов действительно правильно игнорирует someProperty.

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

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