2014-12-05 77 views
4

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

+0

对象通过它们的hashCode和equals方法进行匹配,而不是通过详尽的属性比较来进行匹配 – 2014-12-06 00:25:45

+0

我明白,但是,它们不会告诉您哪些属性无法匹配。 – monksy 2014-12-06 21:09:19

回答

4

我发现这很容易做到,因为该对象的.properties属性生成了一个映射,其中列出了属性名称作为键和值作为值。

有一次,我可以做两个地图之间的差异,我有我正在寻找的答案。

每个对象都有一个.properties扩展名。这工作就像Python .dict。

object1.properties - object2.properties 

因此,这些会显示在object1属性和属性Object2的之间的差异,但只有在存在从Object2的内不同的实体(密钥+值)。如果object2中有其他属性,则不会显示它们。

+2

如何将代码添加为其他人的示例? – cfrick 2014-12-06 23:08:22

+0

完成。 (需要更多字符,请解除此不必要的文字) – monksy 2014-12-08 07:06:28