Prev Next

Java / Lombok Interview questions

What is @Data used for?

@Data is a convenience annotation that bundles several others together: @Getter, @Setter, @ToString, @EqualsAndHashCode, and @RequiredArgsConstructor, all applied at once with a single annotation on the class.

@Data
public class Person {
    private final String id;
    private String name;
    private int age;
}
//  equivalent to individually applying @Getter, @Setter (on non-final fields),
//  @ToString, @EqualsAndHashCode, and @RequiredArgsConstructor

It's a fast way to create a typical mutable data class, but it's an all-or-nothing bundle — if you need to customize or exclude just one piece of that behavior (say, excluding a field from equals), you generally either add the individual exclusion annotations alongside @Data, or drop down to the individual annotations instead of the bundle.

What is @Data essentially a shortcut for?
Does @Data generate setters for final fields?

Invest now in Acorns!!! 🚀 Join Acorns and get your $5 bonus!
Acorns Logo

Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!

Earn passively and while sleeping

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.

Robinhood Logo

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 Logo

Webull! Receive free stock by signing up using the link: Webull signup.

More Related questions...

What is Lombok? What is the purpose of Lombok in Java? How do you add Lombok to a Maven project? How do you add Lombok to a Gradle project? What is @Getter used for? What is @Setter used for? What is @ToString used for? What is @EqualsAndHashCode used for? What is @NoArgsConstructor used for? What is @AllArgsConstructor used for? What is @RequiredArgsConstructor used for? What is @Data used for? What is @Value used for? What is @Builder used for? What is @Slf4j used for? What is @NonNull used for? What is @Cleanup used for? What is @SneakyThrows used for? What is @Synchronized used for? What is @With used for? Describe how Lombok works under the hood (annotation processing)? How do you install the Lombok plugin in an IDE? What are the types of Lombok annotations? How do you exclude a field from @ToString? How do you exclude a field from @EqualsAndHashCode? What is @Builder.Default used for? Why does IDE support matter for using Lombok effectively? What is the difference between @Data and @Value? What is the difference between @NoArgsConstructor, @AllArgsConstructor, and @RequiredArgsConstructor? When should you use @Builder instead of a constructor? How does @EqualsAndHashCode handle inheritance by default? Why can @Data be risky on JPA entity classes? How do you combine Lombok's @Builder with inheritance? What is the difference between @Getter(lazy = true) and a normal @Getter? Why should you be careful using @EqualsAndHashCode on Hibernate entities with lazy-loaded proxies? What is @Accessors used for and how does it change fluent-style access? How does Lombok handle @ToString with circular references? What is @FieldDefaults used for? What is @Delegate used for? Why is Lombok's approach considered a "compiler hack" and what are the implications? How do you debug generated Lombok code? What issues can Lombok cause with static code analysis tools? What are the risks of using @Data with mutable collections? How does delombok work and when would you use it? Why might Lombok cause issues in multi-module Maven builds with annotation processor ordering? What is @UtilityClass used for? What is the difference between Lombok's @Builder and the traditional Gang-of-Four Builder pattern? How do you use Lombok with Java records - is Lombok still needed?
Show more question and Answers...

Spring

Comments & Discussions