如何在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
相关产品推荐
相关产品推荐

