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

如何在Lombok @Setter前后执行自定义方法?

问题解答

不能用onMethod参数实现你要的Setter前后调用自定义方法的需求。

先明确onMethod的作用

onMethod是Lombok提供的参数,仅用于给生成的Setter方法添加自定义注解,比如你想给生成的setName方法加上@MyAnnotation注解,写法是:

@Setter(onMethod_ = @MyAnnotation)
private String name;

(注:这里用onMethod_是因为Java语法不允许直接写onMethod=@...,下划线是规避语法冲突的写法)
它完全不具备插入方法调用的能力。

正确实现方式:用@Setter的before/after参数

你示例里写的@Setter(after="save")就是Lombok原生支持的功能,完全能满足你的需求——在字段赋值后调用指定的save方法,生成的代码就是你预期的样子:

public void setName(String name){
    this.name = name;
    this.save();
}

如果需要调用多个方法,用逗号分隔方法名即可:

@Setter(after={"save", "validate"})
private String name;

只要你的Lombok版本不低于1.16.16(现在主流版本都满足),直接用这个参数就行,不需要额外折腾。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:15:33