You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Lombok的@Builder注解实现Builder构造器仅包含指定必填属性

实现方案

完全可以实现,最简便的方式是将@Builder注解标注在仅包含必填属性的自定义构造器上,Lombok会自动基于该构造器的参数生成Builder的入参,剩余类属性会自动生成对应的链式setter方法,刚好匹配你们团队的约定。

具体实现示例

要实现你给出的调用效果:

Person person = Person.Builder("Bob Belcher").age(23).build();

对应类的代码写法如下:

import lombok.Builder;
import lombok.NonNull;

public class Person {
    // 必填属性
    private String name;
    // 可选属性
    private Integer age;

    // 仅包含必填属性的私有构造器,@Builder加在此处
    @Builder(builderMethodName = "Builder")
    private Person(@NonNull String name) {
        this.name = name;
    }
}

说明

  • 构造器的参数就是你要的Builder构造方法必填入参,有多少个必填属性就加多少个参数即可
  • 构造器参数上加@NonNull注解的话,Lombok会自动生成非空校验逻辑,避免传入null值
  • 没有出现在构造器参数里的类属性,都会自动生成对应的链式set方法,作为可选配置项
  • 示例中builderMethodName = "Builder"是为了匹配你示例里的静态方法名,如果你们用默认的builder()命名,去掉这个参数即可

内容的提问来源于stack exchange,提问作者Sean256

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 03:18:03