equals 的重寫規則

2021-10-04 01:12:52 字數 383 閱讀 5544

自反性:

對於任何非null的引用值x,x.equals(x)應返回true。

對稱性:

對於任何非null的引用值x與y,當且僅當:y.equals(x)返回true時,x.equals(y)才返回true。

傳遞性:

對於任何非null的引用值x、y與z,如果y.equals(x)返回true,y.equals(z)返回true,那麼 x.equals(z)也應返回true。

一致性:

對於任何非null的引用值x與y,假設物件上equals比較中的資訊沒有被修改,則多次呼叫 x.equals(y)始終返回true或者始終返回false。

非空性:

對於任何非空引用值x,x.equal(null)應返回false。

重寫Equals 的區別

以c 為例。同一性 x.equals x 為true,通過referenceequals this,obj 實現 自反性 x.equals y y.equals x 通過this.gettype obj.gettype 判斷型別是否相同,再進一步對屬性進行判斷 傳遞性 if x.equals y t...

重寫equals的問題

我們都知道,在比較兩個物件是否相同時,會用到equals方法,比如list的contains方法,就會呼叫比較物件的equals方法。前段時間在公司寫的乙個檔案檢視小工具,就用到了equals這個方法。具體是遍歷兩個現個資料夾,如果名稱相同的話,比較它們的檔案大小,大小不同的話就列舉出來。由於不精通...

重寫equals方法

對於重寫equals方法有以下例子 object類中的常用方法。object類是所有類的根類,定義了所有物件都具備的功能。api 應用程式介面 文件 class person extends object 判斷是否是同齡人。這個方法也是在比較兩個person物件是否相等。注意 person類中是否有...