二、遇到多个构造器参数要考虑用构建器
public class User {
private int id;
private int age;
private String userName;
private String professional;
private double salary;
private User(Build build) {
id = build.id;
age = build.age;
userName = build.userName;
professional = build.professional;
salary = build.salary;
}
@Override
public String toString() {
return "User [id=" + id + ", age=" + age + ", userName=" + userName
+ ", professional=" + professional + ", salary=" + salary + "]";
}
public static class Build {
// 必许参数
private int id;
// 可选参数
private int age;
private String userName;
private String professional;
private double salary;
public Build(int id) {
this.id = id;
}
public Build age(int age) {
this.age = age;
return this;
}
public Build userName(String userName) {
this.userName = userName;
return this;
}
public Build professional(String professional) {
this.professional = professional;
return this;
}
public Build salary(double salary) {
this.salary = salary;
return this;
}
public User build() {
return new User(this);
}
}
// 测试
public static void main(String[] args) {
User user = new User.Build(1).age(10).userName("小明").build();
System.out.println(user.toString());
// 结果:User [id=1, age=10, userName=小明, professional=null, salary=0.0]
}
}