Czy istnieje biblioteka narzędziowa Java, która jest analogiczna do różnicy w systemie Unix, ale w przypadku obiektów? Szukam czegoś, co może porównać dwa obiekty tego samego typu i wygenerować strukturę danych, która reprezentuje różnice między nimi (i może rekurencyjnie porównać różnice w zmiennych instancji). Jestem nie szukają implementacji Java różnicy tekstowej. Jestem również nie szuka pomocy w używaniu refleksji, aby to zrobić.Czy istnieje biblioteka Java, która może "zmienić" dwa obiekty?
Aplikacja, którą utrzymuję, ma delikatną implementację tej funkcjonalności, która miała kiepskie wybory w zakresie projektowania i która musi zostać przepisana, ale byłoby jeszcze lepiej, gdybyśmy mogli użyć czegoś z półki.
Oto przykład tego rodzaju rzeczy szukam:
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
Po porównaniu, narzędzie powie mi, że „prop1” różni się pomiędzy dwoma obiektami i „prop2” jest taka sama . Myślę, że to naturalne, że DiffDataStructure jest drzewem, ale nie będę wybredny, jeśli kod będzie niezawodny.
Sprawdź to, http://code.google.com/p/jettison/ – denolk
możliwy duplikat [Jak przetestować pod kątem równości złożonych wykresów obiektów?] (Http://stackoverflow.com/questions/1411612/how -to-test-dla-równości-złożonych-obiektów-wykresów) – skaffman
To nie jest duplikat "Jak przetestować równość złożonych grafów obiektów?" Szukam biblioteki, a nie porady, jak to zrobić. Co więcej, interesuję się deltą, nie jeśli są one równe lub nie. –