Nama parameter biasanya tidak dapat diakses oleh kode Java saat runtime (karena dijatuhkan oleh kompiler), jadi jika Anda menginginkan fungsionalitas itu, Anda perlu menggunakan fungsionalitas bawaan Java 8 atau menggunakan pustaka seperti ParaNamer untuk mendapatkan akses untuk itu.
Jadi agar tidak harus menggunakan anotasi untuk argumen konstruktor saat menggunakan Jackson, Anda dapat menggunakan salah satu dari 2 modul Jackson berikut:
jackson-module-parameter-names
Modul ini memungkinkan Anda mendapatkan argumen konstruktor bebas anotasi saat menggunakan Java 8 . Untuk menggunakannya, Anda harus mendaftarkan modul terlebih dahulu:
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new ParameterNamesModule());
Kemudian kompilasi kode Anda menggunakan tanda -parameters:
javac -parameters ...
Tautan: https://github.com/FasterXML/jackson-modules-java8/tree/master/parameter-names
jackson-modul-paranamer
Yang lainnya ini hanya mengharuskan Anda untuk mendaftarkan modul atau mengkonfigurasi introspeksi anotasi (tetapi tidak keduanya seperti yang ditunjukkan oleh komentar). Ini memungkinkan Anda untuk menggunakan argumen konstruktor bebas anotasi pada versi Java sebelum 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());
Tautan: https://github.com/FasterXML/jackson-modules-base/tree/master/paranamer