public class User{
private String name;
private String password;
private String nickName;
private int age;
private User(String name,String password,String nickName,int age){
this.name=name;
this.password=password;
this.nickName=nickName;
this.age=age;
}
public static class UserBuilder{
private String name;
private String password;
private String nickName;
private int age;
private UserBuilder(){
}
public UserBuilder name(String name) {
this.name = name;
return this;
}
public UserBuilder password(String name){
this.password=password;
return this;
}
public UserBuilder nickName(String nickName){
this.nickName=nickName;
return this;
}
public UserBuilder age(int age){
this.age=age;
return this;
}
public User build(){
if(name==null || password==null){
throw new RuntimeException("name is null");
}
if(age<=0 || age >=150){
throw new RuntimeException("age is not allow");
}
if(nickName==null){
nickName=name;
}
return new User(name,password,nickName,age);
}
public static UserBuilder builder() {
return new UserBuilder();
}
}
}
public class TestBuilder {
public static void main(String[] args) {
User d = User.UserBuilder.builder()
.name("zhangs")
.password("13212312")
.age(25)
.build();
}
}