關(guān)于equals和hashCode方法,很多Java程序都知道,但很多人也就是僅僅知道而已,在Joshua Bloch的大作《Effective Java》(很多軟件公司市框,《Effective Java》、《Java編程思想》以及《重構(gòu):改善既有代碼質(zhì)量》是Java程序員必看書籍糕韧,如果你還沒看過枫振,那就趕緊去亞馬遜買一本吧)中是這樣介紹equals方法的:首先equals方法必須滿足自反性(x.equals(x)必須返回true)、對稱性(x.equals(y)返回true時兔沃,y.equals(x)也必須返回true)蒋得、傳遞性(x.equals(y)和y.equals(z)都返回true時级及,x.equals(z)也必須返回true)和一致性(當x和y引用的對象信息沒有被修改時乒疏,多次調(diào)用x.equals(y)應該得到同樣的返回值),而且對于任何非null值的引用x饮焦,x.equals(null)必須返回false怕吴。實現(xiàn)高質(zhì)量的equals方法的訣竅包括:1. 使用==操作符檢查”參數(shù)是否為這個對象的引用”;2. 使用instanceof操作符檢查”參數(shù)是否為正確的類型”县踢;3. 對于類中的關(guān)鍵屬性转绷,檢查參數(shù)傳入對象的屬性是否與之相匹配;4. 編寫完equals方法后硼啤,問自己它是否滿足對稱性议经、傳遞性、一致性谴返;5. 重寫equals時總是要重寫hashCode煞肾;6. 不要將equals方法參數(shù)中的Object對象替換為其他的類型,在重寫時不要忘掉@Override注解嗓袱。
equals(),hashCode()補充
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門烈拒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事缺菌『” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵伴郁,是天一觀的道長耿战。 經(jīng)常有香客問我,道長焊傅,這世上最難降的妖魔是什么剂陡? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮狐胎,結(jié)果婚禮上鸭栖,老公的妹妹穿的比我還像新娘。我一直安慰自己握巢,他們只是感情好晕鹊,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著暴浦,像睡著了一般溅话。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上歌焦,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼关炼!你這毒婦竟也來了程腹?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布易核,位于F島的核電站匈织,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏牡直。R本人自食惡果不足惜缀匕,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望碰逸。 院中可真熱鬧乡小,春花似錦、人聲如沸饵史。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽约急。三九已至零远,卻和暖如春苗分,著一層夾襖步出監(jiān)牢的瞬間厌蔽,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 從三月份找實習到現(xiàn)在糕篇,面了一些公司啄育,掛了不少,但最終還是拿到小米拌消、百度挑豌、阿里、京東、新浪氓英、CVTE侯勉、樂視家的研發(fā)崗...
- 轉(zhuǎn)自:http://blog.csdn.net/jackfrued/article/details/4492194...
- 文章作者:Tyan博客:noahsnail.com | CSDN | 簡書 CHAPTER3 所有對象的共...