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

如何自定义Lombok自动生成的getter方法名称?

Lombok 自定义Getter方法名实现方式

Lombok原生没有提供注解参数或全局配置,支持直接给单个字段指定自定义getter名称。要把示例中boolean字段默认生成的isLogReceivedMessages()改成shouldLogReceivedMessages(),最简便的实现方式就是直接在类中编写你需要的自定义getter方法。

Lombok在生成代码时会自动检测类中已存在的方法,只要你手动写了目标名称的getter,Lombok就不会再生成默认的is前缀getter,不会产生方法冲突。改造后的Context类示例如下:

@Getter
@Builder(setterPrefix = "with")
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class Context {

    @Builder.Default
    private final boolean logReceivedMessages = false;
  
    // 手动编写自定义名称的getter,Lombok不会再生成默认的isLogReceivedMessages()
    public boolean shouldLogReceivedMessages() {
        return logReceivedMessages;
    }

    ... many other fields ...

}

这种写法完全不影响原有@Builder的逻辑,原来的实例构建代码不需要做任何修改:

context = Context.builder().withLogReceivedMessages(true).build();

业务调用时直接使用自定义的方法名即可:

if(context.shouldLogReceivedMessages()) {
   XYZ
} else {
   zyx
}

使用时注意两点:

  • 仅需要给要修改名称的字段单独手写getter即可,其余字段的getter依旧会由Lombok自动生成,不需要额外改动
  • Lombok目前没有提供全局配置项统一修改boolean类型字段的getter生成前缀,如果需要批量替换所有boolean字段的getter前缀,要么逐个手写对应方法,要么自行开发扩展注解处理器,后者实现成本较高,常规业务项目不推荐使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 00:31:02