zoukankan      html  css  js  c++  java
  • equals方法的小结

    尽管经常使用equals,也可能理解不一定神,最近又要使用Collections.sort看到了这些,总结的不错。

    首先equals方法必须满足自反性、对称性、传递性和一致性。

    自反性(x.equals(x)必须返回true)、

    对称性(x.equals(y)返回true时,y.equals(x)也必须返回true)、

    传递性(x.equals(y)和y.equals(z)都返回true时,x.equals(z)也必须返回true)

    和一致性(当x和y引用的对象信息没有被修改时,多次调用x.equals(y)应该得到同样的返回值),

    而且对于任何非null值的引用x,x.equals(null)必须返回false。

    实现高质量的equals方法的诀窍包括:

    1. 使用==操作符检查"参数是否为这个对象的引用";

    2. 使用instanceof操作符检查"参数是否为正确的类型";

    3. 对于类中的关键属性,检查参数传入对象的属性是否与之相匹配;

    4. 编写完equals方法后,问自己它是否满足对称性、传递性、一致性;

    5. 重写equals时总是要重写hashCode;

    6. 不要将equals方法参数中的Object对象替换为其他的类型,在重写时不要忘掉@Override注解(可以不写,但写了利大于弊)。

     我只是大自然的搬运工。打个小广告,销售儿童早教产品,为了娃买套吧,哈哈。http://yandz.com/mr/ar.html

    岁月留痕
  • 相关阅读:
    JavaScrip(二)JavaScrip语法基础
    JavaScrip(一)JavaScrip的写法
    MySQL远程登陆
    JavaScript简介
    Fedora防火墙配置
    sqlalchem表关联(一对多,一对一,多对多)
    常见的SQLALCHEMY列类型
    flask使用配置文件
    算法(一)概述
    pom
  • 原文地址:https://www.cnblogs.com/navigate/p/5445463.html
Copyright © 2011-2022 走看看