• 重写equals方法需要注意的规则


    Object默认的equals方法:
    1.类的每一个实例天生具有独一无二的特性如:Thread的每一个实例代表不同的活动实体;
    2.不关心该类是否具有逻辑上的相等性:如Random类实现随机的效果;
    3.超类已经overridden equals方法,且超类的equals实现适合本身;
    4.该类是私有或包私有,能确保equals方法不会被外部调用。

    equals方法重写应遵循的规则:
    1.自反性:通常不会打破,如果你硬要这么做,如:总是return false
    2.对称性:
    3.传递性:
    4.一致性:equals方法不要依赖不可靠的资源如URL相等性比较依赖ip地址。
    5.非null引用.equals(null)始终返回false

    编写高质量的equals方法:
    1.if(o==this) return true; 高性能
    2.instanceof校验正确的类型;
    3.将参数转型到正确的类型;
    4.对类中的每一个重要的属性跟目标对象进行校验
    5.针对实现验证是否对称,传递和一致;

    Value Object一般需要考虑逻辑相等性
  • 相关阅读:
    java_hibernate 框架4
    java_hibernate 框架3
    java 基础 动态代理
    java_hibernate 框架2
    nginx配置反向代理实现负载均衡 小记
    mysql报错2059
    docker安装php容器小记
    docker安装nginx容器小记
    linux php添加pdo_mysql扩展
    linux php添加openssl扩展
  • 原文地址:https://www.cnblogs.com/xinglongbing/p/1990720.html
Copyright © 2020-2023  润新知