Это использует 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
.
Я немного заглянул в код Джексона, но интересно, если кто-нибудь знает, что я делаю здесь не так, чтобы я мог должным образом динамически игнорировать свойства.