Language: Java
CLI/Utils
Lombok was created to simplify Java development by automating repetitive coding tasks. It uses annotation processing to generate code at compile-time, keeping the source code clean and readable while maintaining full type safety.
Lombok is a Java library that reduces boilerplate code by generating commonly used methods like getters, setters, constructors, `toString`, `equals`, and `hashCode` using annotations.
Add org.projectlombok:lombok dependency in pom.xml and enable annotation processing in IDEAdd implementation 'org.projectlombok:lombok:1.18.30' in build.gradle and enable annotation processingLombok provides annotations like `@Getter`, `@Setter`, `@NoArgsConstructor`, `@AllArgsConstructor`, `@Builder`, `@Data`, and more. These annotations automatically generate code during compilation, reducing boilerplate while keeping Java code clean.
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class User {
private int id;
private String name;
}Automatically generates getter and setter methods for `id` and `name` fields.
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
public class User {
private int id;
private String name;
}Generates a no-argument constructor and an all-argument constructor automatically.
import lombok.ToString;
import lombok.EqualsAndHashCode;
@ToString
@EqualsAndHashCode
public class User {
private int id;
private String name;
}Automatically generates `toString()`, `equals()`, and `hashCode()` methods.
import lombok.Builder;
@Builder
public class User {
private int id;
private String name;
}
User user = User.builder().id(1).name("Alice").build();Enables the builder pattern for creating instances of `User`.
import lombok.Data;
@Data
public class User {
private int id;
private String name;
}`@Data` generates getters, setters, `toString()`, `equals()`, `hashCode()`, and required constructors in a single annotation.
import lombok.Value;
@Value
public class User {
private int id;
private String name;
}`@Value` creates immutable classes with final fields, getters, `toString()`, `equals()`, `hashCode()`, and a constructor.
import lombok.Getter;
@Getter(onMethod_ = {@Deprecated})
private int id;Demonstrates adding custom annotations or behaviors to generated methods using Lombok features.
Use Lombok annotations to reduce boilerplate but avoid overusing `@Data` on entities with sensitive fields.
Enable annotation processing in your IDE for proper code generation.
Combine `@Builder` with `@AllArgsConstructor` for flexible object creation.
Prefer immutable classes (`@Value`) where possible for safer code.
Use `@Getter` and `@Setter` selectively for better control over field access.