[Builder] 생성자 어노테이션
2021. 9. 5. 22:42ㆍ개발공부/Java
728x90
Builder와 생성자
1) @Builder란?
@Builder Lombok 문서를 보면 명시적 생성자가 없을 경우에 @AllArgsConstructor
를 package-private 타입으로 자동생성 한다고 나와있습니다.
그래서 명시적 생성자가 있지만 @AllArgsConstructor
가 없다면 @Builder에 의해 에러가 발생될 것입니다. 따라서 @NoArgsConstructor
와 같은 명시적 생성자 어노테이션을 붙일 땐 반드시 @AllArgsConstructor
도 함께 명시해줘야 합니다.
2) @AllArgsConstructor란?
Lombok 문서를 보면 @AllArgsConstructor generates a constructor with 1 parameter for each field in your class. Fields
marked with @NonNull result in null checks on those parameters.
라고 나와있습니다. 즉, 하나의 파라미터만 가진 생성자를 만들어주며
그 파라미터엔 해당 클래스의 모든 필드들이 들어간다.
라고 이해할 수 있습니다.
public class Parents {
private String name;
private int age;
public Parents(String name, int age) {
this.name = name;
this.age = age;
}
}
이외에 @RequiredArgsConstructor
는 특수 처리가 필요한 final
, @NonNull
필드들을 1개의 파라미터를 가진 생성자를 만들어주며@NoArgsConstructor
는 파라미터가 없는 기본 생성자를 만들어 주는 Lombok 어노테이션 입니다.
참고자료:
'개발공부 > Java' 카테고리의 다른 글
[JPA] @Embedded 와 @Embeddable (0) | 2021.10.08 |
---|---|
[Supplier] What is Java 8 Supplier interface? (0) | 2021.09.11 |
[Java] Java Stream(스트림) (0) | 2021.09.03 |
(23) Mybatis - resultMap (0) | 2021.06.02 |
(22) defaultIfNull (0) | 2021.03.19 |