EqualsAndHashCode註解問題

2021-08-16 16:17:19 字數 569 閱讀 1759

當使用@data註解的實體有父類(非object)時,eclipse會有警告提示

大概意思時自動生成的equals和hashcode方法沒有呼叫父類,如果是故意不掉用父類的話,可以加上@equalsandhashcode(callsuper=false)註解。

因為這個是實體,繼承父類主要也是需要使用父類的元素,所以生成的equals和hashcode方法應該包含父類在內,因此可以把callsuper設為true。

通過反編譯來檢視callsuper為true和false的區別。

當callsuper為true時,在equals方法中會多出乙個判斷,如下

if (!super.equals(o))
可以檢視官網的解釋大概意思是你可以通過使用@equalsandhashcode註解宣告去除哪些父類的域到equals方法中,如果你的父類也有@data標籤,則可以放心地callsuper,但是當你的類沒有顯式繼承其他類的時候,使用該註解會有編譯異常。

記一次 EqualsAndHashCode的疑惑

lombok的使用真的是讓開發人員欲罷不能,乙個 data不管有多少屬性全部搞定,以後加字段也不用從新生成get和set方法。不過這裡還是有乙個小坑需要注意一下,舉個例子 public class equalsandhashcodetest data noargsconstructor access...

SpringBoot面試常問的註解

target elementtype.type retention retentionpolicy.runtime documented inherited springbootconfiguration enableautoconfiguration componentscan excludefi...

使用註解 Resoure的時候容易出現的問題

1.在使用 resoure的時候需要注意 的事項 resource name usermanger public void setusermanger usermanger usermanger 你要注意 你的usermanger 是具體的實現方法還是介面 如果是實現的方法就會出現 模型不匹配的錯誤...