在使用 Lombok 的 @Builder 注解时,自动生成的构建器(Builder)通常比较简单,仅生成字段的设置方法和一个 build() 方法。如果你想对构建过程进行特殊处理(例如属性校验、数据转换或其他定制逻辑),则可能需要手动干预。
Lombok 提供了 @Builder 的一些定制选项,如 toBuilder 和 builderMethodName,但在很多情况下,属性校验或其他复杂逻辑需要通过手动实现来完成。
手动实现 Builder,带有额外的操作
你可以手动实现一个 Builder 类,在构建对象时增加自定义的逻辑。例如,属性校验、转换或依赖关系检查。
示例:使用自定义 Builder 进行属性校验
假设你有一个 User 类,并且希望在构建过程中对某些字段(例如,age)进行校验。
import lombok.Builder;
import lombok.Getter;
@Getter
public class User {
private final String name;
private final int age;
// 手动实现的 Builder
public static class UserBuilder {
private String name;
private int age;
public UserBuilder name(String name) {
if (name == null || name.isEmpty()) {