Java 重写equals 的范式

来源:互联网 发布:阿里云域名解析端口号 编辑:程序博客网 时间:2024/05/22 12:18

概述

只做简单说明,具体关于What & Why & How 请移步《Effective Java 第2版》–第8条


重写equals要注意的五条规则:
1:自反性
2:对称性
3:传递性
4:一致性
5:非空性


具体的范式写法

    @Override    public boolean equals(Object obj) {        // TODO Auto-generated method stub        if (this == obj) {            return true;        }        if (obj != null && obj instanceof Entity) {            Entity a = (Entity) obj;            return (this.field == null ? a.field == null : this.field.equals(a.field));// 多个域比较范式        }        return false;    }

最后说两句:

一般关于对象之间的比较分为两种:逻辑比较与物理比较
逻辑比较通常是指:通过equals方法对两个对象的引用比对,两个对象的是否在逻辑上相等.
物理比较通常是指:通过==比较,两个对象的引用是否指向同一对象(内存地址)

原创粉丝点击