Імена параметрів, як правило, недоступні коду Java під час виконання (тому що це скидання компілятором), тому якщо ви хочете, щоб ця функціональність вам була потрібна або вбудована функціональність Java 8, або використання бібліотеки, такої як ParaNamer, щоб отримати доступ йому.
Отже, щоб не використовувати анотації для аргументів конструктора при використанні Джексона, ви можете скористатися будь-яким із цих двох модулів Джексона:
jackson-module-parameter-names
Цей модуль дозволяє отримати аргументи конструктора без анотацій під час використання Java 8 . Щоб скористатися ним, спочатку потрібно зареєструвати модуль:
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new ParameterNamesModule());
Потім компілюйте свій код, використовуючи прапор -parameters:
javac -parameters ...
Посилання: https://github.com/FasterXML/jackson-modules-java8/tree/master/parameter-names
jackson-module-paranamer
Цей інший просто вимагає зареєструвати модуль або налаштувати інтроспекцію анотацій (але не обидва, як зазначено в коментарях). Це дозволяє використовувати аргументи конструктора без анотацій у версіях 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