Java 重寫equals 的範式

概述

只做簡單說明,具體關於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方法對兩個對象的引用比對,兩個對象的是否在邏輯上相等.
物理比較通常是指:通過==比較,兩個對象的引用是否指向同一對象(內存地址)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章