使用Groovy比较两个对象

使用Groovy比较两个对象,groovy,Groovy,Groovy有没有一个简单的实用程序,可以让我区分两个不同的对象?我通过equals方法得到消息,它们不相等,但我在哪里可以找到哪些属性不匹配 我发现这很容易做到,因为对象的.properties属性生成了一个映射,将属性名称列为键,将值列为值 一旦我有了它,我就可以在两张地图之间做一个区别,我得到了我一直在寻找的答案 每个对象都有一个.properties扩展名。这与Python.dict类似 示例 object1.properties - object2.properties 因此,这些将

Groovy有没有一个简单的实用程序,可以让我区分两个不同的对象?我通过equals方法得到消息,它们不相等,但我在哪里可以找到哪些属性不匹配

我发现这很容易做到,因为对象的.properties属性生成了一个映射,将属性名称列为键,将值列为值

一旦我有了它,我就可以在两张地图之间做一个区别,我得到了我一直在寻找的答案

每个对象都有一个.properties扩展名。这与Python.dict类似

示例

object1.properties - object2.properties

因此,这些将向您显示object1属性和object2属性之间的差异,但仅当存在与object2不同的实体(键+值)时。如果object2中有额外的属性,它们将不会显示。

对象是通过其hashCode和equals方法匹配的,而不是通过对属性的详尽比较来匹配的。但是,我知道,它们不会告诉您哪些属性未匹配。如何添加您的代码作为其他属性的示例?完成。(需要更多字符,请去掉不必要的文本)只要对象可以转换为java.util.LinkedHashMap。一如既往,这取决于对象是如何实现的