package study;
import lombok.Data;
@Data
public class Student {
Integer age;
String name;
String address ;
public Student() {
}
public Student(Builder builder){
this.name = builder.name;
}
public static Builder builder() {
return new Builder();
}
public static final class Builder{
String name;
Integer age;
public Builder age (Integer age){
this.age = age;
return this;
}
public Builder name (String name){
if (name ==null){
return this;
}
this.name = name;
return this;
}
public Student build(){
return new Student(this);
}
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
'}';
}
}
package patterns.builder;
import study.Student;
public class Test {
public static void main(String[] args) {
Student empty = new Student(); //student1
Student student = Student.builder()
.name(empty.getAddress())
.age(18)
.build();
System.out.println("student = " + student);
}
}
![]()