[英]How to override lombok builder method
我想覆盖 Lombok 默认构建器方法。 我试过这段代码,但它不起作用。
甚至有可能做这样的事情吗?
@Data
@Builder
static class A {
private int a;
static class Builder {
A.ABuilder a(int x) {
this.a = 2 * x;
return this;
}
}
}
private static void fun() {
var a = A.builder()
.a(1)
.build();
}
您创建的构建器名称必须与 Lombok 创建的默认构建器名称相匹配。
这行得通,
public static class ABuilder {
ABuilder a(int x) {
this.a = 2 * x;
return this;
}
}
更多详细信息 - 在 Lombok 的构建器中使用自定义设置器
出于某种原因,如果您想以不同的方式命名 Builder class,请使用Builder
注释的builderClassName
。
@Data
@Builder (builderClassName = "MyBuilderClass")
static class A {
private int a;
static class MyBuilderClass {
MyBuilderClass a(int x) {
this.a = 2 * x;
return this;
}
}
}
试试这个
@Data
@Builder
public class A {
private int a;
private int b;
public static class ABuilder {
A.ABuilder a(int x) {
this.a = 2 * x;
return this;
}
}
public static void main(String[] args) {
A aObj = A.builder().a(4).b(10).build();
System.out.println(aObj);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.