Equals方法有两个整数

时间:2014-03-14 13:18:10

标签: java equals

我想覆盖equals方法。但在我的班上有两个整数。我想问你equalsMethode是否正确。

像这样?

谢谢

编辑1: 我的问题是,我想删除一个

的典型字段的对象

2 个答案:

答案 0 :(得分:3)

除了一些语法错误之外,实现并不正确。但是,转换为字符串是不必要的:

return other.getRow() == getRow() && other.getColumn() == getColumn();

其他要点:

  1. if (this == obj)检查是多余的。

  2. if (getClass() != obj.getClass())检查可能是也可能不合适,具体取决于您是否打算继承Field(我注意它未被声明为final)。

  3. 最后但并非最不重要的是,在覆盖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;
    }