如何解决如何在调用 cls.builder.param().build() 时使用虚拟值初始化构建器类成员
我需要在调用 .param() 时用一些虚拟值初始化我的构建器类成员
@Builder
public class MyQuery {
private String param1;
private String param1;
private String param1;
private String param1;
...
private String param100;
}
当我像下面这样调用构建器类时,我希望它们用一些虚拟值(或空字符串)初始化,其余的应该为空。如果我使用 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;
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。