JAVA语言规范-equals方法特性

  • equals

    public boolean equals(Object obj) {
    return (this == obj);
    }
    

    equals 方法在非空对象引用上实现相等关系:

    1. 自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
    2. 对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。
    3. 传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。
    4. 一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。
    5. 对于任何非空引用值 x,x.equals(null) 都应返回 false;
    6. 注意:hashcode值不等于内存地址;

如果一个类没有重写equals方法,并且对应的类及其父类列表中都没有重写过equals方法,那么默认的equals()操作对比的就是对象的地址(或hashCode);

equals方法建议

results matching ""

    No results matching ""