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

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

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

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

問題描述

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

然而,我以前從未見過這種方法,這讓我產(chǎn)生了懷疑。根據(jù)Java Equals和hashCode的合同,以下實現(xiàn)合法嗎?

@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);
}

推薦答案

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

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

Equals方法在非空對象引用上實現(xiàn)等價關系:

它是自反式的:對于任何非空的引用值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,多次調(diào)用x.equals(Y)將一致返回True或一致返回False,前提是對象上的等于比較中使用的信息未被修改。
對于任何非空引用值x,x.equals(空)應返回FALSE。

逐步:

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

因此,從純粹的法律角度來看,這取決于繼承層次結構中的其他實現(xiàn)是否違反了對稱性和傳遞性–請參閱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個不同的狀態(tài),但只有2^32個可能的哈希碼。這意味著,根據(jù)equals的實現(xiàn),有許多點被視為相等。


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

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

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

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

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

運動步數(shù)有氧達人2018-06-03

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

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

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

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