99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

淺談java重寫equals方法的種種坑-創(chuàng)新互聯(lián)

重寫java object類的equals方法

成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、慈利網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、商城系統(tǒng)網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為慈利等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
  • 覆蓋equals方法請遵守約定
  • 什么情況下要覆蓋equals方法
  • 容易違反的對稱性
  • 不易察覺的傳遞性

覆蓋equals請遵守通用約定

似乎覆蓋equals方法看起來似乎是一件平常甚至極其簡單的事情,
但是有許多覆蓋方式會導(dǎo)致錯誤,并且會表現(xiàn)出超出預(yù)期的行為,
而有可能數(shù)小時也無法找到錯誤的位置。(比如說把參數(shù)改成了非Object類型)

1. 類的每一個實(shí)例在本質(zhì)上都是唯一的

( 從內(nèi)存的角度來講是這樣的),對于代表活動而不是值(value)的類來說更是如此,
 例如Thread。
 Object提供equals的實(shí)現(xiàn)對于這些類來說是正確的行為

2. 類沒有必要提供“邏輯相等”的測試功能

3.超類已經(jīng)覆蓋了equals方法,超類的行為對于子類來說同樣也是合適的

4.類是私有的或者是包級私有的,可以確定它的equals方法永遠(yuǎn)不會被外界調(diào)用

如果非常想規(guī)避風(fēng)險,可以覆蓋equals方法,
來確保來自O(shè)bject或者超類的方法永遠(yuǎn)不會被意外調(diào)用。

那么什么時候應(yīng)該覆蓋equals方法

如果類具有自己特有的“邏輯相等”概念(不同于對象等同的概念)
而且超類沒有覆蓋equals方法。這通常屬于"值類"(value class)的情形

例如 一個圓 Circle類,內(nèi)有一個私有的成員變量radius半徑
可以認(rèn)為,radius相等代表了兩個實(shí)例在邏輯上相等(或許可以再加上坐標(biāo))

再看String類,程序員在利用equals方法比較值對象的引用時,
更希望知道它們邏輯上是否相等,而不希望知道它們到底是不是同一個對象

為滿足要求,不僅必須覆蓋equals方法,
而且這樣做也使得這個類的實(shí)例
可以被用作映射表 (map) 的鍵 (key) ,或者集合set的元素,
使其表現(xiàn)出符合預(yù)期的行為

注意:有一種“值類”不需要覆蓋equals方法
即實(shí)例受控,甚至于單例模式,
確保每個實(shí)例的“值”至多只存在一個對象,甚至僅能存在一個實(shí)例
(好像太嚴(yán)格了,不過只能存在一個對象有什么可比的呢,就像客戶端只能有一個連接服務(wù)器的socket類實(shí)例一樣)

覆蓋equals時請遵守通用約定

自反性,對稱性以及傳遞性是最基礎(chǔ)的約定

x.equals(x) = x.equals(x) (好像很傻)
x.equals(y) = y.equals(x)(這也是最容易出現(xiàn)問題的地方)
x.equals(y) = y.equals(z) 那么x.equals(z) == true

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.yijiale78.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文標(biāo)題:淺談java重寫equals方法的種種坑-創(chuàng)新互聯(lián)
文章鏈接:http://www.yijiale78.com/article2/docdic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊網(wǎng)頁設(shè)計公司、動態(tài)網(wǎng)站、全網(wǎng)營銷推廣商城網(wǎng)站云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司