点击链接加入群聊【java菜鸟学习】:https://jq.qq.com/?_wv=1027&k=5afU7nS
群号:124569404
build模式可以解决构造器多个参数不易阅读
传统的手写build方式
public class User {
private String name;
private Integer id;
private Integer sex;
public static class Builder{
private String name;
private Integer id;
private Integer sex;
public Builder name (String name) {
this.name=name; return this;
}
public Builder id (Integer id) {
this.id=id; return this;
}
public Builder sex (Integer sex) {
this.sex=sex; return this;
}
public User build (){
return new User(this);
}
}
public User(Builder builder) {
this.name = builder.name;
this.id = builder.id;
this.sex = builder.sex;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", id=" + id +
", sex=" + sex +
'}';
}
public static void main(String[] args) {
User user = new User.Builder().id(1).name("王大锤").sex(1).build();
System.out.println(user);
}
}
此方法看起来不够简洁,如果加上Set,get方法之后一个实体类就变得很大了.
使用lombok
即可让代码看起来简洁也能够使用build方法
1,pom.xml
导入包
<!--lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
</dependency>
2,写实体类
import lombok.Builder;
import lombok.Data;
/**
* ClassName: User
* @Description:
* @author leegoo
* @date 2019年01月03日
*/
@Data
@Builder(toBuilder=true)
public class User {
private String name;
private Integer id;
private Integer sex;
public static void main(String[] args) {
User user = new User.UserBuilder().id(1).name("王大锤").sex(1).build();
System.out.println(user);
}
}
结论:同样的结果但是代码量却少了很多