โดยปกติชื่อพารามิเตอร์จะไม่สามารถเข้าถึงได้โดยโค้ด Java ที่รันไทม์ (เนื่องจากถูกส่งโดยคอมไพเลอร์) ดังนั้นหากคุณต้องการฟังก์ชันดังกล่าวคุณจำเป็นต้องใช้ฟังก์ชันในตัวของ Java 8 หรือใช้ไลบรารีเช่น ParaNamer เพื่อเข้าถึง ไปเลย
ดังนั้นเพื่อที่จะไม่ต้องใช้คำอธิบายประกอบสำหรับอาร์กิวเมนต์ตัวสร้างเมื่อใช้ Jackson คุณสามารถใช้ประโยชน์จากโมดูลแจ็คสัน 2 โมดูลเหล่านี้:
แจ็คสันโมดูลพารามิเตอร์ชื่อ
โมดูลนี้จะช่วยให้คุณได้สร้างอาร์กิวเมนต์คำอธิบายประกอบฟรีเมื่อใช้Java 8 ในการใช้งานคุณต้องลงทะเบียนโมดูลก่อน:
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new ParameterNamesModule());
จากนั้นคอมไพล์โค้ดของคุณโดยใช้แฟล็ก -parameters:
javac -parameters ...
ลิงก์: https://github.com/FasterXML/jackson-modules-java8/tree/master/parameter-names
แจ็คสันโมดูล 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());
Link: https://github.com/FasterXML/jackson-modules-base/tree/master/paranamer