目录
一、创建类
            
            
              java
              
              
            
          
          @Builder
public class User {
    private final String name;
    private final int age;
    @Builder.Default private String address = "Unknown";
    @Builder.Default private String email = "N/A";
}
        二、用法
(1) 链式调用:可读性高
            
            
              java
              
              
            
          
          User user = User.builder()
    .name("Alice")
    .age(25)
    .address("New York")
    .email("alice@example.com")
    .build();
        - 自文档化:代码即文档,无需查看类定义即可理解参数意义。
 
(2) 处理多参数和可选参数
- 
灵活构造:可选参数可以跳过,必填参数强制要求设置。
 - 
避免"伸缩构造函数"问题(无需为不同参数组合重载多个构造函数)。
 
(3) 支持不可变对象
- 
对象一旦通过
build()创建,所有属性变为final,保证线程安全和状态一致性。 - 
普通 Setter 方法会破坏不可变性。
 
(4) 分离构造逻辑
- 
构造过程通过
Builder类封装,与目标类解耦。 - 
可以在
build()方法中添加校验逻辑,确保对象有效性。 
三、完整代码
            
            
              java
              
              
            
          
          @Builder
public class User {
    private final String name;
    private final int age;
    @Builder.Default private String address = "Unknown";
    @Builder.Default private String email = "N/A";
}
// 使用方式
User user = User.builder()
    .name("Alice")
    .age(25)
    .address("New York")
    .email("alice@example.com")
    .build();