Java中的Diff,Patch和Reverse-patch

时间:2015-03-02 12:44:25

标签: java diff patch lcs

我正在寻找一个java util,它可以在两个java对象之间创建一个diff,它可以嵌套并包含数组等。 util还应该能够在原始对象上应用diff(a.k.a补丁),并从中删除差异。

我在JS中找到了一个:https://github.com/benjamine/jsondiffpatch。 但是,如果Java中已经存在一个,那就太好了。

请注意,该工具应该实现LCS,并且数组比较应该基于哈希函数(可自定义)而不是逐字(逐行)比较,这意味着它应该处理数组 - 移动等。

Diff可以采用XML / JSON转换的java对象

2 个答案:

答案 0 :(得分:0)

所以你想要比较/"补丁"同一类的实例对吗? 看看这里: http://commons.apache.org/proper/commons-beanutils/ 您可以使用BeanComparator和BeanUtils类。

答案 1 :(得分:0)

http://javers.org可以计算两个复杂的Java对象图之间的差异,但不能将其应用回还原更改。您仍然可以从存储库

中检索审计对象的prevoius版本(作为快照)