如何为Lombok @Builder生成的建造者类添加getter方法?
解决方案
Lombok默认的@Builder注解不会为生成的建造者类添加Getter方法,属于默认设计,你可以通过以下两种方式实现需求:
方案1:手动声明建造者类并添加@Getter注解
该方案兼容性最好,1.18.16版本可直接使用,原理是Lombok会补全自定义建造者类中缺失的构建逻辑,同时保留你添加的注解:
@Value @Builder(toBuilder = true, builderClassName = "MyEntityBuilder") public class MyEntity { String name; // 手动声明同名建造者类,添加@Getter注解即可 @Getter public static class MyEntityBuilder { // 不需要填写任何代码,Lombok会自动补全所有字段、setter、build方法 } }
配置完成后重新编译项目,就能正常调用MyEntityBuilder.getName()方法,IDEA也会正常自动补全。
方案2:全局配置(可选)
如果项目中大量类都需要建造者的Getter方法,可以在项目根目录的lombok.config配置文件中添加以下配置:
lombok.builder.getter = true
该配置从Lombok 1.18.16版本开始支持,开启后所有@Builder生成的建造者类都会自动带有Getter方法,不需要每个类单独修改。
内容的提问来源于stack exchange,提问作者AlikElzin-kilaka
相关产品推荐
相关产品推荐

