zoukankan      html  css  js  c++  java
  • Effective Java -- 对于所有对象都通用的方法

    覆盖equb时请遵循通用约定:

    1. 自反性。对于任何非null的引用值x,xequals(x)必须返回true。
    2. 对称性。对于任何非null的引用值x和y,当且晋档y.equals(x)返回true的时候,x.equals(y)必须返回true。
    3. 传递性。对于任何非null的引用值x,y和z,如果x.equals(y),并且y.equals(z),则x.equals(z)为true。
    4. 一致性。对于非null的引用值x和y,只要equals的比较操作在对象所用的信息没有被修改,多次调用x.equals(y)就会返回true,或者一直返回false。
    5. 非空性。对于任何非null的引用值x,x.equals(null)必须false。

    实现高质量equal方法的诀窍:

    1. 使用==操作符检查"参数是否为这个对象的引用"。
    2. 使用instanceof操作符检查“参数是否为正确的类型”。
    3. 把参数转换成正确的类型。
    4. 对于该类中的每个关键域,检查参数中的域是否与该对象中对应的域相匹配。
    5. 确定equals方法的对称性,一致性,传递性。
    6. 覆盖equals总要覆盖hashCode。
    7. 不要企图让equals过于智能。
    8. 不要将equals声明中的Object对象替换为其他的类型。
  • 相关阅读:
    iType.js仿输入文字效果
    css上下左右居中
    js的几种继承方式
    jquery ajax跨越
    js构造函数+原型
    less基础引用
    vw单位相关
    移动端适配(rem单位定义方法)
    第二周 day2 python学习笔记
    第一周 day1 Python学习笔记
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/6758147.html
Copyright © 2011-2022 走看看