Имена параметров обычно недоступны для кода Java во время выполнения (потому что они отбрасываются компилятором), поэтому, если вам нужна эта функциональность, вам нужно либо использовать встроенную функциональность Java 8, либо использовать библиотеку, такую как ParaNamer, чтобы получить доступ. к нему.
Поэтому, чтобы не использовать аннотации для аргументов конструктора при использовании Джексона, вы можете использовать любой из этих двух модулей Джексона:
имена-параметров-модуля-Джексона
Этот модуль позволяет получать аргументы конструктора без аннотаций при использовании Java 8 . Чтобы использовать его, вам сначала необходимо зарегистрировать модуль:
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new ParameterNamesModule());
Затем скомпилируйте свой код, используя флаг -параметры:
javac -parameters ...
Ссылка: https://github.com/FasterXML/jackson-modules-java8/tree/master/parameter-names
Джексон-модуль-параметр
Этот другой просто требует, чтобы вы зарегистрировали модуль или настроили самоанализ аннотации (но не то и другое, как указано в комментариях). Он позволяет использовать аргументы конструктора без аннотаций в версиях Java до 1.8 .
ObjectMapper mapper = new ObjectMapper();
// either via module
mapper.registerModule(new ParanamerModule());
// or by directly assigning annotation introspector (but not both!)
mapper.setAnnotationIntrospector(new ParanamerOnJacksonAnnotationIntrospector());
Ссылка на сайт: https://github.com/FasterXML/jackson-modules-base/tree/master/paranamer