如何通过Lombok注解生成包含不同指定字段的两个构造方法
问题结论
原生Lombok的标准构造注解无法直接自动生成你需要的自定义参数组合的额外构造,你可以通过以下方式实现需求:
可行方案
- 方案1:直接手写包含
b、c参数的构造方法,和Lombok通过@RequiredArgsConstructor生成的构造完全兼容,不会发生冲突,示例代码如下:
@RequiredArgsConstructor class Foo { @NonNull private String a; @NonNull private double b; private int c; // 手写的自定义构造,和Lombok生成的a+b参数构造共存 public Foo(double b, int c) { this.b = b; this.c = c; } }
- 方案2:如果你不想手写构造逻辑,也可以使用Lombok实验性功能中的
@CustomConstructor注解,指定需要的字段列表生成对应构造,注意实验性功能可能存在版本兼容性问题,不推荐在生产环境使用。
补充说明
Lombok提供的三个标准构造注解@NoArgsConstructor、@RequiredArgsConstructor、@AllArgsConstructor每个类型仅支持生成一个对应规则的构造,无法自定义参数组合,因此自定义参数的构造优先推荐手写实现。
内容的提问来源于stack exchange,提问作者Compte Gmail
相关产品推荐
相关产品推荐

