如何在调用 cls.builder.param().build() 时使用虚拟值初始化构建器 class 成员
How to initialize builder class members with dummy values while calling cls.builder.param().build()
我需要在调用 .param()
时使用一些虚拟值初始化我的构建器 class 成员
@Builder
public class MyQuery {
private String param1;
private String param1;
private String param1;
private String param1;
...
private String param100;
}
当我像下面这样调用构建器 class 时,我希望它们用一些虚拟值(或空字符串)初始化,其余的应该为空。如果我使用 LOMBOK 生成器,则必须使用一些值将其初始化为 .param1("some string")。有没有图书馆可以帮到我。
MyQuery query = MyQuery.builder()
.param1()
.param2()
.param3()
.build();
无论我调用哪个参数,都应该有一些虚拟值(非空,也可以为空)。
在浏览了 lombok builder 文档之后,我意识到我可以做如下事情。如果同名资源已经存在,Lombok 将不会生成资源。这种方法仍然会减少一些样板代码。
import lombok.Builder;
@Builder
public class MyQuery {
private static final String SOME_STRING = "This is needed";
private String paramWithNoSpecialCase // This is any other parameter, lombok will generate the builder for this.
private String param1;
private String param2;
private String param3;
public static class MyQueryBuilder {
public MyQuery.MyQueryBuilder param1() {
this.param1 = SOME_STRING;
return this;
}
public MyQuery.MyQueryBuilder param2() {
this.param1 = SOME_STRING;
return this;
}
public MyQuery.MyQueryBuilder param3() {
this.param1 = SOME_STRING;
return this;
}
}
}
我需要在调用 .param()
时使用一些虚拟值初始化我的构建器 class 成员@Builder
public class MyQuery {
private String param1;
private String param1;
private String param1;
private String param1;
...
private String param100;
}
当我像下面这样调用构建器 class 时,我希望它们用一些虚拟值(或空字符串)初始化,其余的应该为空。如果我使用 LOMBOK 生成器,则必须使用一些值将其初始化为 .param1("some string")。有没有图书馆可以帮到我。
MyQuery query = MyQuery.builder()
.param1()
.param2()
.param3()
.build();
无论我调用哪个参数,都应该有一些虚拟值(非空,也可以为空)。
在浏览了 lombok builder 文档之后,我意识到我可以做如下事情。如果同名资源已经存在,Lombok 将不会生成资源。这种方法仍然会减少一些样板代码。
import lombok.Builder;
@Builder
public class MyQuery {
private static final String SOME_STRING = "This is needed";
private String paramWithNoSpecialCase // This is any other parameter, lombok will generate the builder for this.
private String param1;
private String param2;
private String param3;
public static class MyQueryBuilder {
public MyQuery.MyQueryBuilder param1() {
this.param1 = SOME_STRING;
return this;
}
public MyQuery.MyQueryBuilder param2() {
this.param1 = SOME_STRING;
return this;
}
public MyQuery.MyQueryBuilder param3() {
this.param1 = SOME_STRING;
return this;
}
}
}