当前位置: 首页 > 面试题库 >

如何一般比较整个Java bean?

刁星渊
2023-03-14
问题内容

我一直在尝试使用org.apache.commons.beanutils库获取方法/习惯用法,以评估2个实例之间的 所有
属性是否相等,即bean的常规equals()方法。
有没有简单的方法可以使用此库?还是我走错路了?谢谢。


问题答案:

尝试EqualsBuilder.reflectionEquals()的公共浪。EqualsBuilder具有一组方法来包括所有字段,所有非瞬态字段以及除某些字段之外的所有字段。

如果其他所有方法均失败,则该代码可以作为实现此示例的好例子。



 类似资料:
  • 问题内容: 我必须比较两个对象(不是)。比较它们的规范方法是什么? 我可以想到: 该运营商只比较基准,因此这将仅适用于较低的整数值的工作。但是也许自动装箱开始了…? 这看起来像一个昂贵的操作。是否以此方式计算出哈希码? 有点冗长… 编辑: 谢谢您的答复。尽管我现在知道该怎么办,但事实已分布在所有现有答案(甚至是已删除的答案)上,我也不知道该接受哪个答案。因此,我将接受最佳答案,即所有三种比较可能性

  • 作为实习的一部分,我被要求调查一个错误。一段代码正在抛出 Java . lang . illegalargumentexception:比较法违反了它的通用契约! 自定义通过查看自定义类的成员变量来比较两个自定义类: 此自定义类的 方法查看此自定义类的 成员变量。我们很难重现这种行为。我的下意识反应是将自定义中的 return 语句替换为 ,但我的团队怀疑这会解决问题。谁能提供任何见解?

  • 下面的代码是Dave Koelle的AlphanumComparator的编辑版本。编辑包含将空字符串排序到列表末尾或 底部的代码。问题是 为了解决我的问题,我调查了它并找到了诸如比较器没有 等原因; 在正确的位置。我还在Java错误数据库中发现了一条评论,上面写着 java.util.Arrays.sort和java.util.Collections.sort(间接地)使用的排序算法被替换了,新

  • 我目前正在Java中对集合进行排序。我收到了错误消息“比较方法违反了它的一般契约”。我也理解这个错误消息,但我(主要)使用Long类型的构建比较方法。所以我不知道,在这种情况下,排序方法仍然违反了契约。这是我的代码: 这里是错误:

  • 我有一个类字段,和。我需要使用对它们进行排序,但我得到了一个异常: java.lang.IllegalArgumentException:比较方法违反了它的一般约定! 我的< code>compareTo方法: 请帮我找出compareTo方法中的错误。谢了。

  • 我的一个应用程序曾经抛出一个IllegalArgumentException,指出比较方法违反了其一般合同。我找到了一些详细说明该问题的资源,例如 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6804124 和 http://www.oracle.com/technetwork/java/javase/compatibility-41701