zoukankan      html  css  js  c++  java
  • 重写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一般需要考虑逻辑相等性
  • 相关阅读:
    编码
    浏览器翻页
    验证码识别
    时间
    phantomjs配置
    产品
    java范型的理解
    使用JDBC连接数据库
    垃圾回收机制
    java的内存区域 && java内存模型
  • 原文地址:https://www.cnblogs.com/xinglongbing/p/1990720.html
Copyright © 2011-2022 走看看