Idea生成Builder代码-插件Builder Generator
为啥使用
最近在搞项目重构,就是请求的Request都走builder模式…
体力活,如果自己一个一个写,就很麻烦,这时候就要使用插件了…
插件
当时搜索builer,出来很多,好像是第一个吧,下载的比较多…
安装完成后重启
使用
以前实体类生成构造方法,或者getset方法的时候,使用的快捷键是alt+insert,同样,现在生成Builder类也是这个快捷键;
可以看见多了个Builder…然后生成,可以修改前缀,和类名,用的比较多的就是innerBuilder那个复选框,就是在当前类的内部生成静态内部类…
这是比较通用的,具体根据自己的公司习惯再去修改修改.
举个栗子:
我们builder构建走静态create方法,这时候应该让user是不可变的,是保持valid状态的;生成的是anUser,然后方法参数都是必传参数;必传参数就是final,User类的属性就全部是final;跟生成的还是有区别的
然后就要修改修改:
public class User {
private final String name;
private final String password;
public User(UserBuilder builder) {
this.name = builder.name;
this.password = builder.password;
}
public String getName() {
return name;
}
public String getPassword() {
return password;
}
public static final class UserBuilder {
private final String name;
private String password;
private UserBuilder(String names) {
this.name = names;
}
//构建参数是必传参数
public static UserBuilder create(String name) {
return new UserBuilder(name);
}
public UserBuilder withPassword(String password) {
this.password = password;
return this;
}
public User build() {
return new User(this);
}
}
public static void main(String[] args) {
User aaa = UserBuilder.create("aaa").withPassword("123").build();
System.out.println(aaa.getName());
}
}
世界上所有的不公平都是由于当事人能力不足造成的.