Java 8 - 比较 2 个对象并标记差异

标签 java compare diff

我是 Java 8 的新手,喜欢比较功能。但现在我在我们的旧项目中有一段特殊的代码,几乎无法阅读。

程序从另一个数据库将对象的一些字段导入到表中,如果已经有该对象的条目,它将获得一个新的版本号。

下一部分是为该客户选择每个条目并查找具有 2 个版本的条目,然后我对它们进行比较并标记不同的字段,并将旧版本的旧条目放在其后面。

这一切都是通过许多循环、一个比较器和 40 个字段的compareTo 来完成的。就像我说的,几乎无法阅读。 Java 8 有没有像这个线程一样的方法 -> https://stackoverflow.com/questions/369512/how-to-compare-objects-by-multiple-fields but with marking of the difference?

最佳答案

为什么不使用链接中的代码?

Comparator.comparing(p->p.firstName)
          .thenComparing(p->p.lastName)
          .thenComparingInt(p->p.age);

如果您有访问器方法:

Comparator.comparing(Person::getFirstName)
          .thenComparing(Person::getLastName)
          .thenComparingInt(Person::getAge);

关于Java 8 - 比较 2 个对象并标记差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34792657/

相关文章:

powershell - 从Noob到PowerShell,将文件复制到文件夹中

bash - diff 命令在 bash shell 脚本中不起作用

Javascript 逐行比较

Java字符串到日期更改时区

diff - 是否有任何具有垂直比较的 n-way diff 工具?

Java : How to tint this PNG programmatically?

javascript - 更新字符串的数组比较函数

algorithm - Myers 算法的终点

java - 从 Eclipse 生成的 Gradle 构建文件,出现错误 : Gradle version 1. 10 是必需的

java - 创建子 Fragment 后从 Activity 获取子 Fragment