`
only_java
  • 浏览: 109884 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java基础3-equals方法

    博客分类:
  • j2se
阅读更多

   1.重写equals方法,就必须遵守如下规范:

1.对于任何引用类型, o.equals(o) == true成立.

2.如果 o.equals(o1) == true 成立,那么o1.equals(o)==true也一定要成立.

3.如果 o.equals(o1) == true 成立且 o.equals(o2) == true 成立,那么
o1.equals(o2) == true 也成立.

4.如果第一次调用o.equals(o1) == true 或 o.equals(o1) == false成立,
在o和o1没有改变的情况下以后的任何次调用都成立.

5.o.equals(null) == false

 

  2.高质量的equals的写法

     1.使用==操作符检查”实参是否为指向对象的一个引用 “   ,如果是的话返回true

      if (getClass() != obj.getClass()) {
            return false;
        }

     2.使用instanceof操作符检查”实参是否为正确的类型 “,这里正确的类型 是指equals方法所做的类

     if (obj == null || !(obj instanceof MyObject2)) {
       return false;
     }

     3.把实参转换为正确的类型

     4.对于该类中的每一个关键域 (要比较的成员),检查参数中的域与当前的域是否匹配

       域的比较通常为:(field=o.field || (field!=null && field.equals(o.field)))

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics