【问题标题】:Comparing two objects with Groovy使用 Groovy 比较两个对象
【发布时间】:2014-12-05 22:18:41
【问题描述】:

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

【问题讨论】:

  • 对象通过它们的 hashCode 和 equals 方法匹配,而不是通过属性的详尽比较
  • 我知道,但是,他们不会告诉您哪些属性不匹配。

标签: groovy


【解决方案1】:

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

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

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

示例

object1.properties - object2.properties

因此,这些将向您展示 object1 属性和 object2 属性之间的区别,但仅限于存在与 object2 内部不同的实体(键+值)的情况。如果 object2 中有额外的属性,则不会显示。

【讨论】:

  • 添加您的代码作为其他人的示例怎么样?
  • 完成。 (需要更多字符,请忽略这个不必要的文本)
  • 只要对象可以转换成java.util.LinkedHashMap。与往常一样,这取决于您的对象是如何实现的
猜你喜欢
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-22
  • 1970-01-01
  • 2019-08-02
  • 2014-01-26
相关资源
最近更新 更多