@Data
public class PeopleBuilder {
private People.Leg leg;
private People.Brain brain;
public PeopleBuilder leg(String desc) {
leg = new People.Leg(desc);
return this;
}
public PeopleBuilder brain(String desc) {
brain = new People.Brain(desc);
return this;
}
public People build() {
this.leg("leg").brain("brain");
return People.create(this);
}
}
、
@Data
public class People {
private Brain brain;
private Leg leg;
private People() {}
private People(PeopleBuilder builder) {
this.brain = builder.getBrain();
this.leg = builder.getLeg();
}
public static People create(PeopleBuilder builder) {
return new People(builder);
}
@Data
@AllArgsConstructor
static class Leg {
private String desc;
}
@Data
@AllArgsConstructor
static class Brain {
private String desc;
}
}
public class Test {
public static void main(String[] args) {
People people = new PeopleBuilder().build();
System.out.println(people);
}
}