क्या एक जावा उपयोगिता पुस्तकालय है जो यूनिक्स कार्यक्रम के अनुरूप है, लेकिन वस्तुओं के लिए? मैं एक ऐसी चीज की तलाश कर रहा हूं जो एक ही प्रकार की दो वस्तुओं की तुलना कर सके और एक डेटा संरचना उत्पन्न कर सके जो उनके बीच अंतरों का प्रतिनिधित्व करती है (और उदाहरण के चर में अंतर की तुलना कर सकते हैं)। मैं एक पाठ अंतर के जावा कार्यान्वयन के लिए नहीं देख रहा हूँ । मैं यह करने के लिए परावर्तन का उपयोग करने में सहायता के लिए भी नहीं देख रहा हूँ ।
मेरे द्वारा बनाए जा रहे एप्लिकेशन में इस कार्यक्षमता का एक नाजुक कार्यान्वयन है जिसमें कुछ खराब डिजाइन विकल्प थे और जिन्हें फिर से लिखने की आवश्यकता है, लेकिन यह बेहतर होगा यदि हम शेल्फ से कुछ का उपयोग कर सकते हैं।
यहाँ मैं देख रहा हूँ कि किस तरह की चीज़ का एक उदाहरण है:
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
तुलना करने के बाद, उपयोगिता मुझे बताएगी कि "प्रोप 1" दो वस्तुओं के बीच अलग है और "प्रोप 2" समान है। मुझे लगता है कि यह एक पेड़ होने के लिए डिफ्डाटास्ट्रक्चर के लिए सबसे स्वाभाविक है, लेकिन अगर कोड विश्वसनीय है, तो मैं पिकी नहीं जाऊंगा।