我想覆盖equals方法。但在我的班上有两个整数。我想问你equalsMethode是否正确。
像这样?谢谢
编辑1: 我的问题是,我想删除一个
的典型字段的对象答案 0 :(得分:3)
除了一些语法错误之外,实现并不正确。但是,转换为字符串是不必要的:
return other.getRow() == getRow() && other.getColumn() == getColumn();
其他要点:
if (this == obj)
检查是多余的。
if (getClass() != obj.getClass())
检查可能是也可能不合适,具体取决于您是否打算继承Field
(我注意它未被声明为final
)。
最后但并非最不重要的是,在覆盖equals()
时,您还应该覆盖hashCode()
。有关讨论,请参阅What issues should be considered when overriding equals and hashCode in Java?。
答案 1 :(得分:0)
这是你的等于方法:
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Field other = (Field) obj;
if (column != other.column)
return false;
if (row != other.row)
return false;
return true;
}
这是你的hashCode方法:
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + column;
result = prime * result + row;
return result;
}