天天看點

使用[email protected]标簽遇到的問題

關鍵詞:hash hashCode toString equals

       data标簽包含了get,set,hash等一系列代碼,如果是單純的bean并不會碰到問題,當bean是繼承來的時候,equals等方法就會出現一個問題,在計算hash值,調用equals時不會調用父類屬性進行對比,當子類屬性一緻,父類屬性變更時,計算值無變更。

       此問題同樣會導緻hashSet,hashMap等使用hash值進行對比的結果,會導緻已修改的資料判斷為屬性一緻導緻去重。類上加上

@EqualsAndHashCode(callSuper = true)
           

注釋就有可以改變此問題。這個問題有些類似與equals傳遞問題,當A equals B B equals C 時,A equals C 應該傳回true,但是繼承導緻了有些時候無法成立。