は、私が二組持って設定しています。私の要件に応じて、上書きされのjavaのassertEquals
Set<Attribute> set1 = new HashSet<Attribute>(5);
Set<Attribute> set2 = new HashSet<Attribute>(5);
//add 5 attribute objects to each of them. (not necessarily the same objects)
assertEquals(set1,set2); //<--- returns false, even though
//the added attribute objects are equal
ザ・は属性のequalsメソッドを:デバッグ時
public abstract class Attribute implements Serializable{
public int attribute;
public abstract boolean isNumerical();
@Override
public boolean equals(Object other){
if(!(other instanceof Attribute)){
return false;
}
Attribute otherAttribute = (Attribute)other;
return (this.attribute == otherAttribute.attribute &&
this.isNumerical() == otherAttribute.isNumerical());
}
}
、equalsメソッドがさえ呼ばれていません!
アイデア?
参照の等号から使用されている:[オーバーライドは、JavaのequalsとhashCode(http://stackoverflow.com/questions/27581) – McDowell
@McDowell:ありがとう!私は、hashCodeが2つのオブジェクトに対して異なる値を返す場合、equals呼び出しから真を得るチャンスがないことを知っていました。私は急いでいた! :) – Razvan