Lombok reduces the maintenance burden of Java data classes by generating boilerplate source constructs from annotations during compilation. Its practical value appears when encapsulation, constructors, and equality methods make a small class disproportionately large. section 4.1.2
The clearest use is replacing telescoping constructors with a readable Builder pattern. Instead of positional arguments or many overloaded constructors, @Builder lets callers name only the fields they need. This keeps object creation flexible while avoiding manually maintained builder code. section 4.1.2
Person p = Person.builder().firstname("John")
.lastname("Doe")
.town("Grenoble")
.build();
A Person object is built by naming firstname, lastname, and town before calling build(), making intent visible at the call site. section 4.1.2
Use Lombok when repetitive data-class mechanics obscure the model and a generated builder improves readability. Keep the design goal in view: reduce cognitive load and change surface, not merely line count. section 4.1.2

