Универсальный способ вызвать исключение, когда взаимоисключающие поля присутствуют, используя Джексона - PullRequest
0 голосов
/ 21 февраля 2019

Я использую Jackson FasterXML версии 2.9.0 и застрял с проблемой, когда мне нужно избавиться от присутствия взаимоисключающих полей во время сериализации / десериализации.

Вот краткий пример:

public class Container {

         private GenericType type;

         private A a;   <-- fields a and b are mutually exclusive
         private B b;   <-- both of them use "type" field as EXTERNAL_PROPERTY to identify the correct Java Type of POJOs
}

Есть ли способ, как вызвать исключение, когда такие взаимоисключающие поля присутствуют во время сериализации / десериализации?

Решения с пользовательскими сериализаторами / десериализаторами работают нормально, но янужна более общая функциональность, которая работает из коробки, например, JAXB - Choice.

...