มีไลบรารียูทิลิตี้ Java ที่คล้ายคลึงกับโปรแกรม Unix หรือไม่ แต่สำหรับ Objects? ฉันกำลังมองหาสิ่งที่สามารถเปรียบเทียบออบเจ็กต์สองชิ้นที่มีประเภทเดียวกันและสร้างโครงสร้างข้อมูลที่แสดงถึงความแตกต่างระหว่างสิ่งเหล่านี้ (และสามารถเปรียบเทียบความแตกต่างของตัวแปรอินสแตนซ์แบบวนซ้ำได้) ฉันไม่ได้มองหาการใช้งาน Java ของข้อความที่แตกต่าง ฉันยังไม่ต้องการความช่วยเหลือเกี่ยวกับวิธีใช้การสะท้อนเพื่อทำสิ่งนี้
แอปพลิเคชันที่ฉันดูแลอยู่มีการใช้งานฟังก์ชันนี้ที่เปราะบางซึ่งมีตัวเลือกการออกแบบที่ไม่ดีและจำเป็นต้องเขียนใหม่ แต่จะดีกว่านี้หากเราสามารถใช้บางอย่างจากชั้นวางได้
นี่คือตัวอย่างของสิ่งที่ฉันกำลังมองหา:
SomeClass a = new SomeClass();
SomeClass b = new SomeClass();
a.setProp1("A");
a.setProp2("X");
b.setProp1("B");
b.setProp2("X");
DiffDataStructure diff = OffTheShelfUtility.diff(a, b); // magical recursive comparison happens here
หลังจากเปรียบเทียบยูทิลิตี้จะบอกฉันว่า "prop1" แตกต่างกันระหว่างวัตถุทั้งสองและ "prop2" นั้นเหมือนกัน ฉันคิดว่ามันเป็นเรื่องธรรมดาที่สุดสำหรับ DiffDataStructure ที่จะเป็นต้นไม้ แต่ฉันจะไม่จู้จี้จุกจิกถ้ารหัสนั้นเชื่อถือได้