Unix 프로그램 diff와 유사한 Java 유틸리티 라이브러리가 있지만 Objects 용입니까? 동일한 유형의 두 개체를 비교하고 그 차이를 나타내는 데이터 구조를 생성 할 수있는 무언가를 찾고 있습니다 (그리고 인스턴스 변수의 차이를 재귀 적으로 비교할 수 있음). 난 하지 텍스트 DIFF의 자바 구현을 찾고. 리플렉션을 사용하여이 작업을 수행하는 방법에 대한 도움 도 찾고 있지 않습니다 .
내가 유지하고있는 애플리케이션은 디자인 선택이 좋지 않고 다시 작성해야하는이 기능의 취약한 구현을 가지고 있지만, 기성품을 사용할 수 있다면 더 좋을 것입니다.
내가 찾고있는 종류의 예는 다음과 같습니다.
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가 트리가되는 것이 가장 자연스러운 일이라고 생각하지만 코드가 신뢰할 수 있다면 까다 롭지 않을 것입니다.