객체 생성을 위한 방법
필드 순서 상관 X
public class Test{
private Integer number;
private String str;
public static class Builder{
private Integer number;
private String str;
public Builder number(Integer number){
this.number = number;
return number;
}
public Builder str(String str){
this.str = str;
return this;
}
public Test build(){
return new Test(number, str);
}
}
}
public class TestMain{
@Test
void test1(){
Test test = Test.builder()
.number(1)
.str("test")
.build();
System.out.println("output : " + test.getNumber() + " " + test.getStr());
Test test2 = Test.builder()
.str("test2")
.number(2)
.build();
System.out.println("output : " + test2.getNumber() + " " + test2.getStr());
}
}
output : 1 test
output : 2 test2
@Builder
@Getter
public class Test{
private Integer number;
private String str;
}
public class TestMain{
@Test
void test1(){
Test test = Test.builder()
.number(1)
.str("test")
.build();
System.out.println("output : " + test.getNumber() + " " + test.getStr());
}
}
Builer를 사용하여 생성 시 값을 지정하지 않으면 타입에 따라 0, null, false 값이 할당
// 아래와 같이 변수에 값을 지정하여도 default값으로 셋팅되지 않음
private String str = "default";
// Builder 디폴트 설정
@Builder.Default
private String str= "default";