0%

写java程序应该注意的一些小细节

写java程序应该注意的一些小细节

重写equals方法时需要注意的细节

注意equals方法的入参是Object,不要随意的改成其他类型,否则就变成了重载而不是重写,在重写方法时一定要加上@Override注解,它可以帮助你提前发现你的错误写法

1
2
@Override
public boolean equals(Object obj) {}

重写equals时一定要重写hashCode方法,Object方法中的equals方法上的注释标注了这一点

1
2
3
4
Note that it is generally necessary to override the {@code hashCode}
method whenever this method is overridden, so as to maintain the
general contract for the {@code hashCode} method, which states
that equal objects must have equal hash codes.

如果这个方法被重写则必须重写hashCode方法,为了保证hashCode的规范,两个对象equals相等则其hashCode必须相等