Javaには、各フィールドを別のフィールドと明示的にチェックせずに、異なるクラスのインスタンスの共通フィールド(同じ名前とタイプ)を比較するためのより簡単な方法がありますか?
moo.getFoo() == doo.getFoo();
moo.getRoo().equals(doo.getRoo())
-
Class Moo {
private int foo;
private Object roo;
}
Class Doo {
private int foo;
private Object roo;
private String ho;
}
または、少なくともその場合は可能ですか
Class Doo extends Moo {
private String ho;
}
あなたは使うことができCompareToBuilderまたはEqualsBuilderからのApache Commonsのラングを。このユーティリティは、クラスのすべてのフィールドのcompareTo()、equals()、またはhashCode()メソッドの結果を自動的に作成します。
public int compareTo(Object o) {
return CompareToBuilder.reflectionCompare(this, o);
}
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加