Java / Lombok Interview questions
How do you use Lombok with Java records - is Lombok still needed?
Java's built-in record type (since Java 16) already generates a canonical constructor,
accessors, equals(), hashCode(), and toString() automatically —
covering a large chunk of what @Value or @Data used to provide for immutable classes,
without needing Lombok at all.
// Java record - no Lombok needed for this much: public record Point(int x, int y) {} // automatically gets: constructor, x(), y(), equals(), hashCode(), toString()
Lombok still adds value on top of records for things records don't provide natively — most notably
@Builder, since records don't have a built-in fluent builder, and @With-style
"derive a modified copy" methods, which records also lack built-in. So for simple immutable data carriers,
records alone are often enough; Lombok remains useful specifically when you want a builder or wither-style
methods on top of a record, or for classes that don't fit the record shape (mutable classes, classes needing
custom equals/hashCode logic beyond field-based defaults).
More Related questions...