我有一个Java类,这是一个例子:
public class Car {
private int fuelType;
private Date made;
private String name;
.
.
. // and so on
Run Code Online (Sandbox Code Playgroud)
现在让我们说我有两个车对象,我想比较它们的所有变量是否相等.
现在,我通过重写方法解决了这个问题,equals(Object o)并检查两个对象中的所有变量是否匹配.
这里的问题是,如果我有20个类,我将不得不覆盖它们equals(Object o)中的每一个.
有没有办法创建某种通用方法,可以比较我传递给它的两个对象中的任何一个,并让我知道它们是否匹配每个变量?
Mic*_*mlk 23
你有一些自动化Equals&Hashcode的选项(选项#3 BLEW MY MIND!):
EqualsAndHashCode在ya类上做一个注释并完成它.我建议使用Project Lombok.它为构建添加了一些魔力(但并不多),因此需要一个IDE的插件才能很好地运行,但它们是一个很小的代价,无需样板代码.Lombok是一个在编译时运行的注释处理器,因此您不会遇到运行时性能损失.您可以使用 :
org.apache.commons.lang.builder.CompareToBuilder.reflectionCompare(Object lhs, Object rhs);
Run Code Online (Sandbox Code Playgroud)
它使用反射来比较这里的文件是javadoc:javadoc
| 归档时间: |
|
| 查看次数: |
10035 次 |
| 最近记录: |