日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了這等于合法嗎?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我遇到了這段代碼。我從來沒有見過Equals以這樣的方式實現。讓我印象深刻的是,它真的很”整潔”,從這個意義上說,它只需要一行樣板。

然而,我以前從未見過這種方法,這讓我產生了懷疑。根據Java Equals和hashCode的合同,以下實現合法嗎?

@Override
public boolean equals(Object o)
{
  return this == o || o instanceof DetailsPageTrackingRequest 
  && this.hashCode() == o.hashCode();
}

@Override
public int hashCode()
{
  //java.util.Objects
  return Objects.hash(pageTrackingRequest, searchId, productId);
}

推薦答案

由于其他答案中已經說明的原因,這可能不是一個好主意。

至于”法律”方面,Contract of Object.equals說明

Equals方法在非空對象引用上實現等價關系:

它是自反式的:對于任何非空的引用值x,x.equals(X)應返回True。
它是對稱的:對于任何非空的引用值x和y,當且僅當y.equals(X)返回True時,x.equals(Y)才應返回True。
它是可傳遞的:對于任何非空的引用值x、y和z,如果x.equals(Y)返回True,y.equals(Z)返回True,則x.equals(Z)應返回True。
它是一致的:對于任何非空的引用值x和y,多次調用x.equals(Y)將一致返回True或一致返回False,前提是對象上的等于比較中使用的信息未被修改。
對于任何非空引用值x,x.equals(空)應返回FALSE。

逐步:

自反式:是的,由于this == o
對稱:由于使用了instanceof,我們需要查看所有超類和子類以確保
傳遞性:取決于對稱要求,否則為是
一致:是
x.equals(null)應返回FALSE:是,由于instanceof

因此,從純粹的法律角度來看,這取決于繼承層次結構中的其他實現是否違反了對稱性和傳遞性–請參閱Any reason to prefer getClass() over instanceof when generating .equals()?的答案。

除此之外,考慮到hashCode不需要為非等價實例生成不同的值,這通常不是定義相等的好方法。


示例:

具有兩個字段的不可變點類xy

class Point {
    final int x;
    final int y

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
}

->有2^32 * 2^32 = 2^64個不同的狀態,但只有2^32個可能的哈希碼。這意味著,根據equals的實現,有許多點被視為相等。


另請參閱此示例equals and hashCode: Is Objects.hash method broken?,了解有關使用Objects.hashStrings創建的散列的散列沖突的問題。

這篇關于這等于合法嗎?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:合法 這等于
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定