【发布时间】:2020-07-27 14:35:25
【问题描述】:
我有一堂课IntegerType:
public class IntegerType implements DataType {
private int value;
public IntegerType(int value) {
this.value = value;
}
@Override
public NativeType nativeType() {
return NativeType.INTEGER;
}
@Override
public int size() {
return Integer.BYTES;
}
@Override
public Integer value() {
return this.value;
}
@Override
public boolean equals(Object o) {
boolean result = false;
if (o == null || o.getClass() != getClass()) {
result = false;
} else {
IntegerType integerType = (IntegerType) o;
if (this.value == integerType.value()) {
result = true;
}
}
return result;
}
}
我本质上想根据实例是否具有相同的.value 参数来检查包含IntegerType 实例的两个集合是否相同:
IntegerType int1 = new IntegerType(1);
IntegerType int2= new IntegerType(1);
Set<IntegerType> set1 = new HashSet<>();
set1.add(int1);
Set<IntegerType> set2 = new HashSet<>();
set2.add(int2);
System.out.println(set1.equals(set2));
但是运行上面的代码会打印出false。据我了解,它应该打印true,因为int1.equals(int2) 是true。我在这里错过了什么?
【问题讨论】:
标签: java