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对象替换为其他的类型。
  • 相关阅读:
    WPF-触发器
    WPF使用socket实现简单聊天软件
    git常用命令备忘
    (转载)WPF中的动画——(一)基本概念
    WPF中的依赖项属性
    C#中的索引器
    C#中的装箱拆箱
    编程语言的弱类型、强类型、动态类型、静态类型
    WPF中的数据驱动
    WPF中的命令简介
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/6758147.html
Copyright © 2011-2022 走看看