2014-12-05 48 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