Asıl soru şudur:
@EqualsAndHashCode (callSuper = true) veya @EqualsAndHashCode (callSuper = false) ek açıklama eklemeniz önerilir mi?
Kabul edilen cevap temelde sadece:
...Bu bağlıdır...
Bunu genişletmek için, @EqualsAndHashCode üzerindeki dokümantasyon, seçilecek sağlam bir kılavuza sahiptir. Özellikle bu, IMHO:
CallSuper'ı true olarak ayarlayarak, üst sınıfınızın eşittir ve hashCode yöntemlerini üretilen yöntemlere dahil edebilirsiniz. HashCode için super.hashCode () sonucu, karma algoritmasına dahil edilir ve forequals, oluşturulan yöntem, süper uygulama nesnede iletilene eşit olmadığını düşünürse yanlış döndürür. Tüm eşittir uygulamalarının bu durumu doğru şekilde ele almadığını unutmayın. Bununla birlikte, lombok tarafından oluşturulan eşitlik uygulamaları bu durumu düzgün bir şekilde ele alır, bu nedenle, eğer lombok tarafından üretilen eşittir yöntemine sahipse süper sınıfınızı güvenli bir şekilde çağırabilirsiniz.
Bunu biraz azaltmak için: Durum bilgisi olmayan bir üst sınıftan miras alıyorsanız veya kendisi @Data ek açıklamasını kullanıyorsa veya "durumu düzgün bir şekilde ele alan" eşitlik / karma uygulamalarına sahipse 'callSuper = true' seçeneğini seçin. - bunu, durum değerlerinin uygun bir karmasını döndürmek olarak yorumluyorum.