Java / Lombok Interview questions
How does @EqualsAndHashCode handle inheritance by default?
By default, @EqualsAndHashCode does not call the superclass's equals/
hashCode — it only considers the fields declared in the annotated class itself, which can
silently produce incorrect equality if a subclass has meaningful fields inherited from a parent class that
should also factor into equality.
@EqualsAndHashCode(callSuper = true) public class Employee extends Person { private String department; // now includes Person's fields (via Person's equals/hashCode) AND department }
Setting callSuper = true makes the generated method also invoke the superclass's
equals/hashCode and factor that result in, which is usually what you want once
there's a real inheritance hierarchy with meaningful parent-class state. Lombok will actually emit a compiler
warning if you extend a class and don't specify callSuper explicitly, precisely because getting
this wrong is a common, easy-to-miss bug.
Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!
Acorns is a micro-investing app that automatically invests your "spare change" from daily purchases into diversified, expert-built portfolios of ETFs. It is designed for beginners, allowing you to start investing with as little as $5. The service automates saving and investing. Disclosure: I may receive a referral bonus.
Invest now!!! Get Free equity stock (US, UK only)!
Use Robinhood app to invest in stocks. It is safe and secure. Use the Referral link to claim your free stock when you sign up!.
The Robinhood app makes it easy to trade stocks, crypto and more.
Webull! Receive free stock by signing up using the link: Webull signup.
More Related questions...
