kid*_*won 1 java compare equality class equals
java中是否有更简单的方法来比较不同类的实例的公共字段(相同名称和类型),而无需显式检查每个字段与另一个字段.
moo.getFoo() == doo.getFoo();
moo.getRoo().equals(doo.getRoo())
Run Code Online (Sandbox Code Playgroud)
-
Class Moo {
private int foo;
private Object roo;
}
Class Doo {
private int foo;
private Object roo;
private String ho;
}
Run Code Online (Sandbox Code Playgroud)
或者至少在这种情况下是否可能
Class Doo extends Moo {
private String ho;
}
Run Code Online (Sandbox Code Playgroud)
您可以使用CompareToBuilder或EqualsBuilder从阿帕奇共享郎.此Utilities自动为类的所有字段创建compareTo(),equals()或hashCode()方法的结果.
public int compareTo(Object o) {
return CompareToBuilder.reflectionCompare(this, o);
}
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
Run Code Online (Sandbox Code Playgroud)